{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./app/javascript/src/suchiUtil.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/src/muitiple-selective-checkbox.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/packs/modules/delete_parameter_from_url.js","webpack:///./app/javascript/src/untenShikinSlider.js","webpack:///./app/javascript/packs/modules/select_on_change_submit.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js","webpack:///./node_modules/swiper/swiper-bundle.js","webpack:///./app/javascript/images/mail/mail_banner_01.png","webpack:///./app/javascript/images/mail/mail_banner_02.png","webpack:///./app/javascript/images/mail/mail_banner_03.png","webpack:///./app/javascript/src/founding-template.js","webpack:///./app/javascript/src/kaigyoShikinSlider.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@rails/actiontext/app/assets/javascripts/actiontext.js","webpack:///./app/javascript/images/Sougyokeikakusyo.png","webpack:///./app/javascript/images/Suuchikeikakusyo.png","webpack:///./app/javascript/images/arrow.svg","webpack:///./app/javascript/images/arrow-01.svg","webpack:///./app/javascript/images/arrow-01-white.svg","webpack:///./app/javascript/images/banner--lp-fv-search.png","webpack:///./app/javascript/images/banner--ls-bpsp.png","webpack:///./app/javascript/images/banner--ls-freenance.png","webpack:///./app/javascript/images/banner--ls-kaikeisoft.png","webpack:///./app/javascript/images/banner--ls-kakuteishinkoku.png","webpack:///./app/javascript/images/banner--ls-kyuyoservice.png","webpack:///./app/javascript/images/banner--ls-lending-shikinbanner.png","webpack:///./app/javascript/images/banner--ls-mail.png","webpack:///./app/javascript/images/banner--ls-misoca.png","webpack:///./app/javascript/images/banner--ls-sogyokeikaku.png","webpack:///./app/javascript/images/bg--plans-lp-fv.png","webpack:///./app/javascript/images/bnr--dreamgate--bp-entry--wide_600_120.png","webpack:///./app/javascript/images/bnr--dreamgate--bp-entry--wide_792_200.png","webpack:///./app/javascript/images/bnr--dreamgate--bp-entry_300_300.png","webpack:///./app/javascript/images/bnr--kaikei--pc.png","webpack:///./app/javascript/images/bnr--kaikei--wide--sp.png","webpack:///./app/javascript/images/bnr--misoca--pc.png","webpack:///./app/javascript/images/bnr--misoca--wide--sp.png","webpack:///./app/javascript/images/bnr--shindan-lp--pc.png","webpack:///./app/javascript/images/bnr--shindan-lp--sp.png","webpack:///./app/javascript/images/bnr--shinkoku--pc.png","webpack:///./app/javascript/images/bnr--shinkoku--wide--sp.png","webpack:///./app/javascript/images/icon--A.svg","webpack:///./app/javascript/images/icon--B.svg","webpack:///./app/javascript/images/icon--C.svg","webpack:///./app/javascript/images/icon--S.svg","webpack:///./app/javascript/images/icon--accordion--circle--minus.svg","webpack:///./app/javascript/images/icon--accordion--circle--plus.svg","webpack:///./app/javascript/images/icon--account.svg","webpack:///./app/javascript/images/icon--alert-triangle.svg","webpack:///./app/javascript/images/icon--alert-triangle--red.svg","webpack:///./app/javascript/images/icon--announce--expire-soon.svg","webpack:///./app/javascript/images/icon--announce--expired.svg","webpack:///./app/javascript/images/icon--anounce.svg","webpack:///./app/javascript/images/icon--arrow--back-page.svg","webpack:///./app/javascript/images/icon--arrow--back-page--hover.svg","webpack:///./app/javascript/images/icon--arrow--blue.svg","webpack:///./app/javascript/images/icon--arrow--breadcrumb.svg","webpack:///./app/javascript/images/icon--arrow--next.svg","webpack:///./app/javascript/images/icon--arrow--next--history.svg","webpack:///./app/javascript/images/icon--arrow--next--learn.svg","webpack:///./app/javascript/images/icon--arrow--next--top-fv-card.svg","webpack:///./app/javascript/images/icon--arrow--pink.svg","webpack:///./app/javascript/images/icon--arrow--prev.svg","webpack:///./app/javascript/images/icon--arrow--prev--history.svg","webpack:///./app/javascript/images/icon--arrow--right.svg","webpack:///./app/javascript/images/icon--arrow--selectbox.svg","webpack:///./app/javascript/images/icon--arrow--stepper.svg","webpack:///./app/javascript/images/icon--arrow--stepper--active.svg","webpack:///./app/javascript/images/icon--arrow--tab--on.svg","webpack:///./app/javascript/images/icon--arrow--yellow.svg","webpack:///./app/javascript/images/icon--arrow-next--search-result-card.svg","webpack:///./app/javascript/images/icon--arrow-next--search-result-card--hover.svg","webpack:///./app/javascript/images/icon--arrowhead-down.svg","webpack:///./app/javascript/images/icon--arrowhead-up.svg","webpack:///./app/javascript/images/icon--back-to-top.svg","webpack:///./app/javascript/images/icon--bad.svg","webpack:///./app/javascript/images/icon--beginner--xs.svg","webpack:///./app/javascript/images/icon--bell.svg","webpack:///./app/javascript/images/icon--bell--blue--lg.svg","webpack:///./app/javascript/images/icon--bell--blue--sm.svg","webpack:///./app/javascript/images/icon--bell--xs.svg","webpack:///./app/javascript/images/icon--book--xs.svg","webpack:///./app/javascript/images/icon--bs-designer.png","webpack:///./app/javascript/images/icon--bs-hudosan.png","webpack:///./app/javascript/images/icon--bs-inshoku.png","webpack:///./app/javascript/images/icon--bs-it.png","webpack:///./app/javascript/images/icon--bs-kensetsu.png","webpack:///./app/javascript/images/icon--bs-kouri.png","webpack:///./app/javascript/images/icon--bs-netshop.png","webpack:///./app/javascript/images/icon--bs-ribiyo.png","webpack:///./app/javascript/images/icon--bs-seitai.png","webpack:///./app/javascript/images/icon--bs-sonota.png","webpack:///./app/javascript/images/icon--bs-unso.png","webpack:///./app/javascript/images/icon--bs-webapp.png","webpack:///./app/javascript/images/icon--bs-writer.png","webpack:///./app/javascript/images/icon--building.svg","webpack:///./app/javascript/images/icon--bullet.svg","webpack:///./app/javascript/images/icon--chasefooter--consulting.svg","webpack:///./app/javascript/images/icon--chasefooter--external--link.svg","webpack:///./app/javascript/images/icon--chasefooter--relation.svg","webpack:///./app/javascript/images/icon--checkbox.svg","webpack:///./app/javascript/images/icon--checkbox-checked.svg","webpack:///./app/javascript/images/icon--checkmark.svg","webpack:///./app/javascript/images/icon--checkmark--cyan-blue.svg","webpack:///./app/javascript/images/icon--checkmark--white.svg","webpack:///./app/javascript/images/icon--chevron_right.svg","webpack:///./app/javascript/images/icon--chevron_right--search-result.svg","webpack:///./app/javascript/images/icon--circle-question.svg","webpack:///./app/javascript/images/icon--close-modal.svg","webpack:///./app/javascript/images/icon--consulting--xs.svg","webpack:///./app/javascript/images/icon--copy.svg","webpack:///./app/javascript/images/icon--copy--big.svg","webpack:///./app/javascript/images/icon--cross.svg","webpack:///./app/javascript/images/icon--delete.svg","webpack:///./app/javascript/images/icon--dots.svg","webpack:///./app/javascript/images/icon--edit-score.svg","webpack:///./app/javascript/images/icon--envelop.svg","webpack:///./app/javascript/images/icon--error.svg","webpack:///./app/javascript/images/icon--error--blue.svg","webpack:///./app/javascript/images/icon--exclamation.svg","webpack:///./app/javascript/images/icon--expire-soon.svg","webpack:///./app/javascript/images/icon--expired.svg","webpack:///./app/javascript/images/icon--external-link.svg","webpack:///./app/javascript/images/icon--favorite-button-hover--add.svg","webpack:///./app/javascript/images/icon--favorite-button-hover--remove.svg","webpack:///./app/javascript/images/icon--file-register.svg","webpack:///./app/javascript/images/icon--fine.svg","webpack:///./app/javascript/images/icon--gabage.svg","webpack:///./app/javascript/images/icon--good.svg","webpack:///./app/javascript/images/icon--hand-point-right-solid.svg","webpack:///./app/javascript/images/icon--heart-mark--off.svg","webpack:///./app/javascript/images/icon--heart-mark--on.svg","webpack:///./app/javascript/images/icon--heart-mark--pink.svg","webpack:///./app/javascript/images/icon--heart-mark--white.svg","webpack:///./app/javascript/images/icon--history.svg","webpack:///./app/javascript/images/icon--history--white.svg","webpack:///./app/javascript/images/icon--info--blue.svg","webpack:///./app/javascript/images/icon--info--darkblue.svg","webpack:///./app/javascript/images/icon--links--blue.svg","webpack:///./app/javascript/images/icon--links--green.svg","webpack:///./app/javascript/images/icon--lock.svg","webpack:///./app/javascript/images/icon--login.svg","webpack:///./app/javascript/images/icon--login--blue.svg","webpack:///./app/javascript/images/icon--member.svg","webpack:///./app/javascript/images/icon--member--blue.svg","webpack:///./app/javascript/images/icon--menu--consult.svg","webpack:///./app/javascript/images/icon--menu--make-plan.svg","webpack:///./app/javascript/images/icon--menu--search.svg","webpack:///./app/javascript/images/icon--menu--study.svg","webpack:///./app/javascript/images/icon--menu--xs.svg","webpack:///./app/javascript/images/icon--minus.svg","webpack:///./app/javascript/images/icon--mypage.svg","webpack:///./app/javascript/images/icon--normal.svg","webpack:///./app/javascript/images/icon--overwrite.svg","webpack:///./app/javascript/images/icon--overwrite-orange.svg","webpack:///./app/javascript/images/icon--pen.svg","webpack:///./app/javascript/images/icon--plans-lp-fv-01.png","webpack:///./app/javascript/images/icon--plans-lp-fv-02.png","webpack:///./app/javascript/images/icon--plans-lp-fv-03.png","webpack:///./app/javascript/images/icon--plus.svg","webpack:///./app/javascript/images/icon--plus--ui-orange.svg","webpack:///./app/javascript/images/icon--plus--white.svg","webpack:///./app/javascript/images/icon--plus-square.svg","webpack:///./app/javascript/images/icon--question.svg","webpack:///./app/javascript/images/icon--read-more--minus.svg","webpack:///./app/javascript/images/icon--read-more--plus.svg","webpack:///./app/javascript/images/icon--register.svg","webpack:///./app/javascript/images/icon--rising-arrow.svg","webpack:///./app/javascript/images/icon--sc--circle-plus--off.svg","webpack:///./app/javascript/images/icon--sc--circle-plus--on.svg","webpack:///./app/javascript/images/icon--sc--select.svg","webpack:///./app/javascript/images/icon--sc--select--modal.svg","webpack:///./app/javascript/images/icon--sc--submit-btn--off.svg","webpack:///./app/javascript/images/icon--sc--submit-btn--on.svg","webpack:///./app/javascript/images/icon--scroll-top.svg","webpack:///./app/javascript/images/icon--search.svg","webpack:///./app/javascript/images/icon--search--enhanced.svg","webpack:///./app/javascript/images/icon--search--enhanced--xs.svg","webpack:///./app/javascript/images/icon--search--enhanced--xs--rv.svg","webpack:///./app/javascript/images/icon--search--learnSearch.svg","webpack:///./app/javascript/images/icon--search--main.svg","webpack:///./app/javascript/images/icon--search--main--type2.svg","webpack:///./app/javascript/images/icon--search--main--xs.svg","webpack:///./app/javascript/images/icon--search--research.svg","webpack:///./app/javascript/images/icon--search--xs.svg","webpack:///./app/javascript/images/icon--search-condition.svg","webpack:///./app/javascript/images/icon--search-result-not-found.svg","webpack:///./app/javascript/images/icon--star.svg","webpack:///./app/javascript/images/icon--star--gray.svg","webpack:///./app/javascript/images/icon--star--gray--filled.svg","webpack:///./app/javascript/images/icon--star--white.svg","webpack:///./app/javascript/images/icon--star--yellow--filled.svg","webpack:///./app/javascript/images/icon--success.svg","webpack:///./app/javascript/images/icon--switching--card.svg","webpack:///./app/javascript/images/icon--switching--card--on.svg","webpack:///./app/javascript/images/icon--switching--carousel--next.svg","webpack:///./app/javascript/images/icon--switching--carousel--prev.svg","webpack:///./app/javascript/images/icon--switching--table.svg","webpack:///./app/javascript/images/icon--switching--table--on.svg","webpack:///./app/javascript/images/icon--tooltip.svg","webpack:///./app/javascript/images/icon--top-ov--book.svg","webpack:///./app/javascript/images/icon--top-ov--pc.svg","webpack:///./app/javascript/images/icon--top-ov--pen.svg","webpack:///./app/javascript/images/icon--top-ov--sp.svg","webpack:///./app/javascript/images/icon--triangle--step.svg","webpack:///./app/javascript/images/icon--upload.svg","webpack:///./app/javascript/images/icon--window-close.svg","webpack:///./app/javascript/images/icon--window-close--blue.svg","webpack:///./app/javascript/images/icon--window-close--cross-mark--white.svg","webpack:///./app/javascript/images/icon--window-close--dark-gray.svg","webpack:///./app/javascript/images/icon--window-close--xs.svg","webpack:///./app/javascript/images/icon-newwin.png","webpack:///./app/javascript/images/icon_shindan.svg","webpack:///./app/javascript/images/inner-data-object.png","webpack:///./app/javascript/images/label--yayoi-data-support.svg","webpack:///./app/javascript/images/learn-search/fig-kv.svg","webpack:///./app/javascript/images/learn-search/thumbnail--sample.png","webpack:///./app/javascript/images/logo--shikin-choutatu-navi.svg","webpack:///./app/javascript/images/logo--shikin-choutatu-navi2.svg","webpack:///./app/javascript/images/logo-facebook.svg","webpack:///./app/javascript/images/logo-facebook-circle.svg","webpack:///./app/javascript/images/logo-hatenabookmark.svg","webpack:///./app/javascript/images/logo-line.svg","webpack:///./app/javascript/images/logo-line2.svg","webpack:///./app/javascript/images/logo-orix.svg","webpack:///./app/javascript/images/logo-pocket.svg","webpack:///./app/javascript/images/logo-twitter-circle.svg","webpack:///./app/javascript/images/logo-x.svg","webpack:///./app/javascript/images/lp-fv--shikin.png","webpack:///./app/javascript/images/lp-sec-fts--consult.jpg","webpack:///./app/javascript/images/lp-sec-fts--create.jpg","webpack:///./app/javascript/images/lp-sec-fts--search.jpg","webpack:///./app/javascript/images/lp-sec-fts--shindan.png","webpack:///./app/javascript/images/lp-sec-fts--study.jpg","webpack:///./app/javascript/images/mail-bnr.jpg","webpack:///./app/javascript/images/mail/arrow26.png","webpack:///./app/javascript/images/mail/arrow32.png","webpack:///./app/javascript/images/mail/banner217.jpg","webpack:///./app/javascript/images/mail/button350.png","webpack:///./app/javascript/images/mail/button600.png","webpack:///./app/javascript/images/mail/footer_logo.png","webpack:///./app/javascript/images/mail/mail_banner_04.jpg","webpack:///./app/javascript/images/mail/mail_banner_05.jpg","webpack:///./app/javascript/images/mail/mail_banner_06.jpg","webpack:///./app/javascript/images/mail/mail_banner_07.jpg","webpack:///./app/javascript/images/mail/mail_banner_08.jpg","webpack:///./app/javascript/images/mail/mail_banner_09.jpg","webpack:///./app/javascript/images/mail/spacer.gif","webpack:///./app/javascript/images/mail_step_1.png","webpack:///./app/javascript/images/mail_step_2.png","webpack:///./app/javascript/images/mail_step_3.png","webpack:///./app/javascript/images/mask--another-tab.svg","webpack:///./app/javascript/images/mask--chevron-down.svg","webpack:///./app/javascript/images/mask--chevron-right.svg","webpack:///./app/javascript/images/mask--login.svg","webpack:///./app/javascript/images/mask--rising-arrow.svg","webpack:///./app/javascript/images/member-merit--bookmark.svg","webpack:///./app/javascript/images/member-merit--favorite.svg","webpack:///./app/javascript/images/member-merit--illustration-1.svg","webpack:///./app/javascript/images/member-merit--illustration-2.svg","webpack:///./app/javascript/images/member-merit--mail.svg","webpack:///./app/javascript/images/member-merit--search.svg","webpack:///./app/javascript/images/member-merit--sogyokeikaku.svg","webpack:///./app/javascript/images/member-merit_1.png","webpack:///./app/javascript/images/member-merit_2.png","webpack:///./app/javascript/images/member-merit_3.png","webpack:///./app/javascript/images/member-merit_4.png","webpack:///./app/javascript/images/member-merit_5.png","webpack:///./app/javascript/images/member_step_1.png","webpack:///./app/javascript/images/member_step_2.png","webpack:///./app/javascript/images/member_step_3.png","webpack:///./app/javascript/images/member_step_4.png","webpack:///./app/javascript/images/member_step_easy.png","webpack:///./app/javascript/images/object--kirakira.svg","webpack:///./app/javascript/images/object--recommend-01.svg","webpack:///./app/javascript/images/object--recommend-02.svg","webpack:///./app/javascript/images/object--recommend-03.svg","webpack:///./app/javascript/images/object--recommend-mix.png","webpack:///./app/javascript/images/object--salescopy-gadget-group.png","webpack:///./app/javascript/images/ogp.png","webpack:///./app/javascript/images/ornament--arrow--main.svg","webpack:///./app/javascript/images/ornament--blade.svg","webpack:///./app/javascript/images/ornament--hexagon.svg","webpack:///./app/javascript/images/ornament--hexagon--blue.svg","webpack:///./app/javascript/images/ornament--hexagon--xs.svg","webpack:///./app/javascript/images/ornament--mark--main.svg","webpack:///./app/javascript/images/ornament--triangle--main.svg","webpack:///./app/javascript/images/ornament--wave.svg","webpack:///./app/javascript/images/pagination-switch--next.svg","webpack:///./app/javascript/images/pagination-switch--next--disabled.svg","webpack:///./app/javascript/images/pagination-switch--next--sb.svg","webpack:///./app/javascript/images/pagination-switch--prev.svg","webpack:///./app/javascript/images/pagination-switch--prev--disabled.svg","webpack:///./app/javascript/images/pagination-switch--prev--sb.svg","webpack:///./app/javascript/images/plan-lp-genkinshushi.png","webpack:///./app/javascript/images/plan-lp-related-01.jpg","webpack:///./app/javascript/images/plan-lp-related-02.jpg","webpack:///./app/javascript/images/plan-lp-related-03.jpg","webpack:///./app/javascript/images/plan-lp-related-04.jpg","webpack:///./app/javascript/images/plan-lp-related-05.jpg","webpack:///./app/javascript/images/plan-lp-related-06.jpg","webpack:///./app/javascript/images/plan-lp-related-07.jpg","webpack:///./app/javascript/images/plan-lp-related-08.jpg","webpack:///./app/javascript/images/plan-lp-related-09.jpg","webpack:///./app/javascript/images/plan-lp-sogyo-01.png","webpack:///./app/javascript/images/plan-lp-sogyo-02.png","webpack:///./app/javascript/images/plan-lp-sogyo-03.png","webpack:///./app/javascript/images/plan-lp-sogyo-04.png","webpack:///./app/javascript/images/plan-lp-suchi-01.png","webpack:///./app/javascript/images/plan-lp-suchi-02.png","webpack:///./app/javascript/images/plan-lp-suchi-02-sp.png","webpack:///./app/javascript/images/plan-lp-suchi-03.png","webpack:///./app/javascript/images/plan-lp-suchi-04.png","webpack:///./app/javascript/images/register-bnr.jpg","webpack:///./app/javascript/images/search-ithojokin.png","webpack:///./app/javascript/images/search-ithojokin-sp.png","webpack:///./app/javascript/images/select-form-ui-pair.svg","webpack:///./app/javascript/images/shindan-bnr-sp.jpg","webpack:///./app/javascript/images/shindan-result-top.png","webpack:///./app/javascript/images/shindan_procedure_1.png","webpack:///./app/javascript/images/shindan_procedure_2.png","webpack:///./app/javascript/images/shindan_q1.svg","webpack:///./app/javascript/images/shindan_q1_sp.svg","webpack:///./app/javascript/images/shindan_q2.svg","webpack:///./app/javascript/images/shindan_q2_sp.svg","webpack:///./app/javascript/images/shindan_q3.svg","webpack:///./app/javascript/images/shindan_q3_sp.svg","webpack:///./app/javascript/images/shindan_q4.svg","webpack:///./app/javascript/images/shindan_q4_sp.svg","webpack:///./app/javascript/images/shindan_q5.svg","webpack:///./app/javascript/images/shindan_q5_sp.svg","webpack:///./app/javascript/images/shindan_specialist_1.png","webpack:///./app/javascript/images/shindan_specialist_2.png","webpack:///./app/javascript/images/shindan_specialist_3.png","webpack:///./app/javascript/images/shindan_top.png","webpack:///./app/javascript/images/shindan_top_sp.png","webpack:///./app/javascript/images/sidebar/banner--accountonline.png","webpack:///./app/javascript/images/sidebar/banner--aoiroonline.png","webpack:///./app/javascript/images/sidebar/banner--campaign-upgrade.png","webpack:///./app/javascript/images/sidebar/banner--default.png","webpack:///./app/javascript/images/sidebar/banner--default--type2.png","webpack:///./app/javascript/images/sidebar/banner--itbanking-btob.png","webpack:///./app/javascript/images/sidebar/banner--misoca.png","webpack:///./app/javascript/images/sidebar/banner--shiroiroonline.png","webpack:///./app/javascript/images/sidebar/banner--support-coronavirus.png","webpack:///./app/javascript/images/sidebar/banner--versus-coronavirus.png","webpack:///./app/javascript/images/sidebar/banner--whitedeclaration.png","webpack:///./app/javascript/images/sidebar/banner--youtube-yayoichannel.png","webpack:///./app/javascript/images/sidebar/bnr--sq--account.png","webpack:///./app/javascript/images/sidebar/bnr--sq--base-knowledge-of-working-capital.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--calctax.png","webpack:///./app/javascript/images/sidebar/bnr--sq--consult-expert.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--entrenavi.png","webpack:///./app/javascript/images/sidebar/bnr--sq--foundation.png","webpack:///./app/javascript/images/sidebar/bnr--sq--ftrguide.png","webpack:///./app/javascript/images/sidebar/bnr--sq--hojyokin-kihon.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--kaigyoutodoke.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--kariire-kihon.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--kigyouline.png","webpack:///./app/javascript/images/sidebar/bnr--sq--m-and-a.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--misoca.png","webpack:///./app/javascript/images/sidebar/bnr--sq--nintei-shien-kikan.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--online-yuushi.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--reschedule.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--seidoyuushi.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--shikin-manabu.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--shinkoku-ol.png","webpack:///./app/javascript/images/sidebar/bnr--sq--shinyouhosyoukyoukai.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--sumoviva.png","webpack:///./app/javascript/images/sidebar/bnr--sq--sumoviva-01.png","webpack:///./app/javascript/images/sidebar/bnr--sq--sumoviva-02.png","webpack:///./app/javascript/images/sidebar/bnr--sq--sumoviva-03.png","webpack:///./app/javascript/images/sidebar/bnr--sq--teleworking.png","webpack:///./app/javascript/images/sidebar/bnr--sq--yahouonline.png","webpack:///./app/javascript/images/sidebar/bnr--sq--yayoianshinma.png","webpack:///./app/javascript/images/sidebar/bnr--sq--yokisenujitai.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--youtube-yayoichannel.png","webpack:///./app/javascript/images/sidebar/bnr--sq--zeirishi-shien.jpg","webpack:///./app/javascript/images/sidebar/bnr--sq--zeirishi-shokai.jpeg","webpack:///./app/javascript/images/sidebar/illust--yayoikaikei.png","webpack:///./app/javascript/images/sidebar/sogyokeikaku-banner.png","webpack:///./app/javascript/images/sogyosuchikeikaku-judgement.png","webpack:///./app/javascript/images/sogyosuchikeikaku-plan.png","webpack:///./app/javascript/images/sougyokeikaku-excel.png","webpack:///./app/javascript/images/sprite-general.png","webpack:///./app/javascript/images/suchi-banner-middle.jpg","webpack:///./app/javascript/images/suchi-banner-small.png","webpack:///./app/javascript/images/suuchi-banner.svg","webpack:///./app/javascript/images/suuchi-phone.png","webpack:///./app/javascript/images/tag--yayoi-data-support.svg","webpack:///./app/javascript/images/top-fv--mv.svg","webpack:///./app/javascript/images/top-useful-situations-1.svg","webpack:///./app/javascript/images/top-useful-situations-2.svg","webpack:///./app/javascript/images/top-useful-situations-3.svg","webpack:///./app/javascript/images/top-useful-situations-4.svg","webpack:///./app/javascript/images/wave.png","webpack:///./app/javascript/images/wave_registered.png","webpack:///./app/javascript/images/wave_sp.png","webpack:///./app/javascript/images/wave_white.png","webpack:///./app/javascript/src/numBtn.js","webpack:///./app/javascript/src/customs.js","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./app/javascript/images/bnr--kaikei--sp.webp","webpack:///./app/javascript/images/bnr--kaikei--wide--pc.webp","webpack:///./app/javascript/images/bnr--misoca--sp.webp","webpack:///./app/javascript/images/bnr--misoca--wide--pc.webp","webpack:///./app/javascript/images/bnr--shinkoku--sp.webp","webpack:///./app/javascript/images/bnr--shinkoku--wide--pc.webp","webpack:///./app/javascript/images/mail/mail_banner_01.jpg","webpack:///./app/javascript/images/mail/mail_banner_02.jpg","webpack:///./app/javascript/images/mail/mail_banner_03.jpg","webpack:///./app/javascript/src/sogyo-keikaku.js","webpack:///./app/javascript/packs/search/application.js","webpack:///./app/javascript/src/modal-fetch.js","webpack:///./app/javascript/src/createSwiper.js","webpack:///./app/javascript/src/clipboardcopy.js","webpack:///./app/javascript/src/inputNumber.js","webpack:///./app/javascript/src/user.js","webpack:///./app/javascript/src/search.js","webpack:///./app/javascript/src/plan.js","webpack:///./app/javascript/src/jfc-template.js","webpack:///./app/javascript/src/easy-diagnosis.js","webpack:///./app/javascript/src/shindan-form.js","webpack:///./app/javascript/src/suuchi-keikaku.js","webpack:///./app/javascript/src/copy-sp-modal.js","webpack:///./app/javascript/src/learn-search/suggest.js","webpack:///./app/javascript/src/learn-search/searchTag.js","webpack:///./app/javascript/src/learn-search/category.js","webpack:///./app/javascript/src/learn-search/favorite.js","webpack:///./app/javascript/src/learn-search/scroll.js","webpack:///./app/javascript/src/learn-search/result.js","webpack:///./app/javascript/src/learn-search/study.js","webpack:///./app/javascript/src/search-re25.js","webpack:///./app/javascript/src/collapsible-section.js","webpack:///./app/javascript/src/site-header.js","webpack:///./app/javascript/src/site-footer.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","global","factory","document","w","Error","window","this","noGlobal","arr","getProto","getPrototypeOf","_slice","slice","flat","array","concat","apply","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","cssSupportsSelector","CSS","supports","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","el","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","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","_on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","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","_handlers","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","on","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","old","rboxStyle","rtrimCSS","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","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","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","setWithCountAnimation","element","from","setInterval","floor","clearInterval","toLocaleString","classList","sanitizeMoney","forEach","hyphen","Number","delimitedMoney","money","updateDelimitedMoney","textFieldElement","automaticInput","hiddenElementId","dataset","hiddenElement","changeEvent","dispatchEvent","setDelimitedMoney","inputElementId","bottom","auto","basePlacements","viewport","variationPlacements","reduce","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","getWindow","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","enabled","phase","_ref","assign","effect","_ref2","initialStyles","popper","strategy","arrow","reference","attribute","requires","getBasePlacement","min","getUAString","uaData","navigator","userAgentData","brands","brand","userAgent","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","x","offsetLeft","y","offsetTop","getLayoutRect","abs","child","rootNode","isSameNode","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","rects","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","update","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","Map","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_loop","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","some","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","order","modifiers","visited","Set","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","merged","orderModifiers","existing","_ref$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","Promise","destroy","onFirstUpdate","_KEY_TO_DIRECTION","eventListeners","_get","receiver","Reflect","_getPrototypeOf","_superPropBase","desc","getOwnPropertyDescriptor","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_slicedToArray","_arrayWithHoles","_s","_e","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","f","normalCompletion","didErr","_e3","return","arr2","TRANSITION_END","getSelector","hrefAttribute","includes","startsWith","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","getElement","isVisible","elementIsVisible","closedDetails","summary","Node","ELEMENT_NODE","hasAttribute","findShadowRoot","attachShadow","reflow","getjQuery","DOMContentLoadedCallbacks","isRTL","defineJQueryPlugin","plugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","_step","_iterator","execute","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","nativeEvents","makeEventUid","getElementEvents","findHandler","callable","delegationSelector","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","oneOff","_normalizeParameters2","wrapFunction","previousFunction","domElements","_step2","_iterator2","hydrateObj","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","removeNamespacedHandlers","storeElementEvent","_i2","_Object$keys","handlerKey","_normalizeParameters4","inNamespace","isNamespace","_i3","_Object$keys2","_i4","_Object$keys3","keyHandlers","jQueryEvent","nativeDispatch","meta","_Object$entries","_i5","_unused","entries","elementMap","instanceMap","size","delete","normalizeData","decodeURIComponent","normalizeDataKey","chr","Manipulator","_step3","_iterator3","pureKey","charAt","Config","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","Default","configTypes","DefaultType","_i6","_Object$keys4","expectedTypes","valueType","BaseComponent","_Config","_super","_this","_element","_config","_getConfig","DATA_KEY","EVENT_KEY","_step4","_iterator4","getOwnPropertyNames","isAnimated","getInstance","enableDismissTrigger","component","clickEvent","tagName","getOrCreateInstance","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","Alert","_BaseComponent","_super2","_this2","_queueCallback","_destroyElement","dispose","EVENT_KEY$a","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","_super3","SelectorEngine","findOne","ancestor","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","EVENT_KEY$9","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","Default$c","endCallback","leftCallback","rightCallback","DefaultType$c","Swipe","_Config2","_super4","_this3","isSupported","_deltaX","_supportPointerEvents","PointerEvent","_initEvents","_eventIsPointerPenTouch","_handleSwipe","absDeltaX","_this4","_start","_end","_move","maxTouchPoints","EVENT_KEY$8","DATA_API_KEY$5","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN$1","EVENT_MOUSEENTER$1","EVENT_MOUSELEAVE$1","EVENT_DRAG_START","EVENT_LOAD_DATA_API$3","EVENT_CLICK_DATA_API$5","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","KEY_TO_DIRECTION","Default$b","keyboard","pause","ride","touch","DefaultType$b","Carousel","_BaseComponent3","_super5","_this5","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","_clearInterval","_this6","_updateInterval","nextWhenVisible","_this7","_this8","items","_getItems","activeIndex","_getItemIndex","_getActive","defaultInterval","_this9","_keydown","_maybeEnableCycle","_addTouchEventListeners","_step5","_this10","_iterator5","img","swipeConfig","_directionToOrder","activeIndicator","newActiveIndicator","elementInterval","_this11","isNext","nextElement","nextElementIndex","triggerEvent","eventName","_orderToDirection","slideEvent","isCycling","_setActiveIndicatorElement","directionalClassName","orderClassName","completeCallBack","_isAnimated","carousel","slideIndex","_step6","_iterator6","EVENT_KEY$7","EVENT_SHOW$6","EVENT_SHOWN$6","EVENT_HIDE$6","EVENT_HIDDEN$6","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE$4","Default$a","DefaultType$a","Collapse","_BaseComponent4","_super6","_this12","_isTransitioning","_triggerArray","_step7","_iterator7","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","_this13","activeChildren","_getFirstLevelChildren","_step8","_iterator8","_getDimension","capitalizedDimension","scrollSize","_this14","_step9","_iterator9","_step10","_iterator10","triggerArray","isOpen","_step11","_iterator11","_step12","_iterator12","NAME$a","EVENT_KEY$6","DATA_API_KEY$3","ARROW_UP_KEY$1","ARROW_DOWN_KEY$1","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_DATA_TOGGLE_SHOWN","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$9","autoClose","popperConfig","DefaultType$9","_BaseComponent5","Dropdown","_super7","_this15","_popper","_parent","_menu","_inNavbar","_detectNavbar","_createPopper","_ref6","_step13","_iterator13","_completeHide","_ref7","_step14","_iterator14","referenceElement","_getPopperConfig","parentDropdown","isEnd","_this16","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","_ref8","_step15","_iterator15","composedPath","isMenuTarget","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","_selectMenuItem","dataApiKeydownHandler","clearMenus","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","ScrollBarHelper","documentWidth","innerWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_resetElementAttributes","_saveInitialAttribute","styleProperty","_this17","scrollbarWidth","_applyManipulationCallback","actualValue","removeProperty","callBack","_step16","_iterator16","NAME$9","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Default$8","clickCallback","rootElement","DefaultType$8","Backdrop","_Config3","_super8","_this18","_isAppended","_append","_getElement","_emulateAnimation","_this19","backdrop","_this20","EVENT_KEY$5","EVENT_FOCUSIN$2","EVENT_KEYDOWN_TAB","TAB_NAV_BACKWARD","Default$7","autofocus","trapElement","DefaultType$7","FocusTrap","_Config4","_super9","_this21","_isActive","_lastTabNavDirection","_this22","_handleFocusin","_handleKeydown","EVENT_KEY$4","EVENT_HIDE$4","EVENT_HIDE_PREVENTED$1","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_RESIZE$1","EVENT_CLICK_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","Default$6","DefaultType$6","Modal","_BaseComponent6","_super10","_this23","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_scrollBar","_this24","_adjustDialog","_showElement","_this25","deactivate","_hideModal","_i7","_arr2","htmlElement","_this26","modalBody","activate","_this27","_triggerBackdropTransition","event2","_this28","_resetAdjustments","_this29","isModalOverflowing","initialOverflowY","isBodyOverflowing","_property","paddingLeft","paddingRight","_this30","showEvent","alreadyOpen","EVENT_KEY$3","DATA_API_KEY$1","EVENT_LOAD_DATA_API$2","CLASS_NAME_SHOW$3","CLASS_NAME_SHOWING$1","CLASS_NAME_HIDING","OPEN_SELECTOR","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_RESIZE","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","Default$5","DefaultType$5","Offcanvas","_BaseComponent7","_super11","_this31","_this32","_this33","_this34","_this35","_this36","_step17","_iterator17","_step18","_iterator18","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attributeName","attributeRegex","regex","DefaultAllowlist","area","br","em","hr","h1","h2","h3","h4","h5","h6","li","ol","pre","small","span","sub","sup","strong","u","ul","Default$4","allowList","extraClass","sanitize","sanitizeFn","template","DefaultType$4","DefaultContentType","entry","TemplateFactory","_Config5","_super12","_this37","_this38","_resolvePossibleFunction","getContent","_checkContent","templateWrapper","_maybeSanitize","_i8","_Object$entries2","_ref12","_setContent","_template$classList","_i9","_Object$entries3","_ref15","templateElement","_putElementInTemplate","unsafeHtml","sanitizeFunction","_ref9","_step19","createdDocument","_iterator19","_ref10","elementName","_step20","attributeList","allowedAttributes","_iterator20","sanitizeHtml","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","customClass","title","DefaultType$3","_BaseComponent8","Tooltip","_super13","_this39","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","_leave","_enter","_hideModalHandler","_disposePopper","_this40","_isWithContent","isInTheDom","_getTipElement","_ref17","_step21","_iterator21","_this41","_ref18","_step22","_iterator22","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","toHtml","tipId","getUID","changeContent","_getDelegateConfig","attachment","_this42","_this43","_step23","_this44","_iterator23","_initializeOnDelegatedTarget","eventIn","eventOut","_this45","_setTimeout","_this46","dataAttributes","_i10","_Object$keys5","dataAttribute","Default$2","DefaultType$2","_Tooltip","Popover","_super14","_getContent","_ref20","EVENT_KEY$2","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API$1","CLASS_NAME_ACTIVE$1","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LINKS","SELECTOR_LINK_ITEMS","Default$1","rootMargin","smoothScroll","threshold","DefaultType$1","ScrollSpy","_BaseComponent9","_super15","_this47","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","_step24","_iterator24","section","observe","_this48","observableSection","behavior","_this49","IntersectionObserver","_observerCallback","_this50","targetElement","_process","userScrollsDown","_step25","_iterator25","isIntersecting","entryIsLowerThanPrevious","_clearActiveClass","_step26","_iterator26","anchor","_activateParents","_step27","_iterator27","_step28","listGroup","_iterator28","_step29","_iterator29","_step30","_iterator30","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_BaseComponent10","_super16","_this51","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","_getActiveElem","hideEvent","_deactivate","_activate","relatedElem","_this52","_toggleDropDown","_this53","nextActiveElement","preventScroll","_this54","_setAttributeIfNotExists","_step31","_iterator31","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","_step32","_iterator32","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_BaseComponent11","_super17","_this55","_hasMouseInteraction","_hasKeyboardInteraction","_this56","_clearTimeout","_maybeScheduleHide","_this57","isShown","_this58","isInteracting","_this59","_onInteraction","webpackPolyfill","deprecate","paths","checkMandatoryFields","submitButtonEl","errorStatus","checkedCitiesOver","checkboxEx","currentHTML","checkFreewordLengthOver","freewordFieldClassName","maxLength","mainGroupedInputClassName","mainPrefInputCalssName","groupedInputClassName","prefInputCalssName","cityInputCalssName","industoryInputClassName","usageInputClassName","prefApiUrl","checkPrefs","checkedPrefsArray","elm","checkPrefElement","prefCode","thisElement","targetCheckBoxEx","prefArray","query","tempRow","tempHead","tempSelect","prefs","tempRowClone","tempHeadClone","pref","cities","idxSelect","tempSelectClone","city_cd","city","assembleCities","checkCities","checkedCities","addCitiesToArray","citySyncTextField","getPrefJson","collectPrefArray","createCities","checkedCitiesArray","checkCityElement","parentElement","addPrefsToArray","checkedPrefs","checkPrefGroupElement","targetCheckboxExSelected","syncTextField","targetHeadingClass","targetInputClassName","selectGroup","selectHeaderInput","targetDataObjectClassName","defaultHtml","valsPref","$mainSearchConditionPrefButton","$mainSearchConditionCityButton","setIndustory","vals","setUsage","valsUsage","selectedValue","g","Function","deleteParameterFromUrl","deleteName","URL","searchParams","history","replaceState","runningData","uriageSum","profit","getMonthlyUriage","year","handleTabChange","rangeForm","runningInput","tabId","prevSelected","selectedYear","changeUntenView","updateMonthlyProfit","changeProfitView","dataInputsRunning","rangeInputsRunning","maxRange","inputData","backgroundSize","handleClickCompareTab","setCompareInputs","handleSetCompareInputs","compareInputs","compareProfits","itemId","itemid","handleCompareInputChange","inputId","updateAsideRunning","handleCompareProfitChange","profitOfThisYear","updateItemsByProfit","handleUriageChange","currentTabId","uriageId","handleRangeInputRunningChange","inputIdNum","inputElement","handleDataInputRunningChange","sliderId","sliderIdNum","sliderElement","handleProfitSliderInput","changeRangeInputsView","handleProfitChange","handleProfitSliderBackground","monthlyUriage","expense","total","isDeficit","runningDataSize","salesDiff","profitSliderInput","profitSumInput","expense1","expense2","expense3","yearlyProfit1","yearlyProfit2","yearlyProfit3","handleUntenShikinSetSimulationBar","addSuchiKeikakuEventListenerAll","tab","profitSlider","profitInput","setInitialValueForUntenShikin","hideYakuinHoshu","yakuinhoshu1y","yakuinhoshu2y","yakuinhoshu3y","selectOnChangeSubmit","selectEl","hiddenEl","submitEl","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","setData","csrfParam","csrfToken","CSRFProtection","refreshCSRFTokens","CustomEvent","createEvent","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","serializeElement","additionalParam","inputs","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","action","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","sparkMd5","undefined$1","hex_chr","md5cycle","k","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","substring","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","clamp","targetArray","sourceArray","begin","appendBinary","_buff","_length","_hash","_finish","getState","setState","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","initEvent","BlobRecord","checksum","filename","content_type","byte_size","getMetaValue","requestDidLoad","requestDidError","_this$xhr","stringify","blob","direct_upload","directUploadData","toJSON","BlobUpload","_blob$directUploadDat","_this$xhr2","DirectUpload","upload","methodName","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","alert","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","submitForm","ActiveStorage","_wrapNativeSuper","Class","_cache","Wrapper","_construct","Parent","isObject$1","extend$1","ssrDocument","createElementNS","importNode","hostname","origin","pathname","search","getDocument","ssrWindow","pushState","go","back","Image","screen","matchMedia","cancelAnimationFrame","Dom7","_Array","arrayFlat","res","arrayFilter","_html","toCreate","tempParent","uniqueArray","arrayUnique","deviceCached","browser","Methods","classes","_el$classList","_len2","_key2","_el$classList2","_len4","_key4","_len3","_key3","attrName","transition","_len5","_key5","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","_parents","handleEvent","_event2","dom7LiveListeners","proxyListener","_event","dom7Listeners","_len6","_key6","_event3","dom7proxy","_len9","_key9","_event4","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","outerHeight","_styles2","_window","_document","scrollY","scrollX","compareWith","previousSibling","returnIndex","newChild","tempDiv","nextEls","_next","prevEls","_prev","foundElements","found","nextTick","getTranslate","matrix","curTransform","transformMatrix","curStyle","currentStyle","getComputedStyle$1","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isObject","isNode","noExtend","nextSource","keysArray","nextIndex","nextKey","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","targetPosition","startPosition","translate","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","getTime","easeProgress","currentPosition","getSupport","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isSafari","isWebView","calcBrowser","eventsEmitter","priority","eventsListeners","destroyed","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","eventsArray","transitionEmit","runCallbacks","previousIndex","onTouchStart","touchEventsData","animating","preventInteractionOnTransition","cssMode","loop","loopFix","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","swipingClassHasValue","noSwipingClass","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","closestElement","allowClick","swipeHandler","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","rtl","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","maxTranslate","minTranslate","touchAngle","diffX","diffY","sqrt","pow","isHorizontal","atan2","touchMoveStopPropagation","nested","startTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","updateProgress","setTranslate","onTouchEnd","slidesGrid","currentPos","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","_increment","rewindFirstIndex","rewindLastIndex","rewind","isBeginning","virtual","slides","ratio","increment","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","snapGrid","updateSlides","slidesPerView","centeredSlides","autoplay","running","paused","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","onScroll","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","move","cancel","updateOnWindowResize","isGridEnabled","grid","rows","defaults","initialSlide","resizeObserver","createElements","autoHeight","setWrapperSize","virtualTranslate","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopedSlidesLimit","loopFillGroupWithBlank","loopPreventsSlide","maxBackfaceHiddenSlides","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","$el","getDirectionLabel","getDirectionPropertyValue","label","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginBottom","marginTop","marginRight","slideSize","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","boxSizing","_slide$","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","slide","_index","swiperSlideOffset","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","_slide2","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","nextSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","initialized","slideFound","clickedSlide","clickedIndex","byController","translateTo","translateBounds","internal","newTranslate","isH","_wrapperEl$scrollTo","onTranslateToWrapperTransitionEnd","transitionStart","indexAsNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_swiperImmediateVirtual","_wrapperEl$scrollTo2","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","normalize","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","_index2","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","_points$i","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","resultClasses","suffixes","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","_swiper$modules","__modules__","mod","extendParams","desktop","swiperParams","passedParams","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","newDefaults","installModule","cls","slideEl","updates","getSlideClasses","exact","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","wrapper","mount","deleteInstance","cleanStyles","createElementIfNotDefined","checkProps","classesToSelector","appendSlide","observer","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","_i13","_i14","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","effectInit","requireUpdateOnVirtual","overwriteParams","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","effectTarget","effectParams","$slideEl","transformEl","effectVirtualTransitionEnd","allSlides","eventTriggered","triggerEvents","createShadow","shadowClass","$shadowContainer","$shadowEl","prototypeGroup","protoMethod","use","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","cssModeTimeout","renderSlide","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","previousOffset","slidesAfter","slidesBefore","onRendered","lazy","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","numberOfNewSlides","cachedIndex","$cachedEl","cachedElIndex","kc","pageUpDown","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","mousewheel","releaseOnEdges","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","rtlFactor","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","positions","_newEvent","sign","ignoreWheelEvents","sticky","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","prevEvent","releaseScroll","getEl","toggleEl","disabledClass","lockClass","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","navigationDisabledClass","_swiper$navigation3","_swiper$navigation4","targetEl","pagination","clickable","isHidden","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","paginationType","firstIndex","midIndex","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","progressbarDirection","render","paginationHTML","numberOfBullets","dragStartPos","dragSize","trackSize","divider","dragTimeout","scrollbar","$dragEl","newSize","newPos","getPointerPosition","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","eventMethod","$swiperEl","dragClass","dragEl","draggable","scrollbarDisabledClass","parallax","setTransform","currentOpacity","currentScale","_swiper","parallaxEl","$parallaxEl","parallaxDuration","zoom","maxRatio","containerClass","zoomedSlideClass","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","isScaling","gesture","slideWidth","slideHeight","$imageEl","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","onTransitionEnd","zoomIn","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","touchAction","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","_getListeners2","_getListeners3","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","background","$pictureEl","sourceEl","$source","slideOriginalIndex","slideExist","amount","maxIndex","minIndex","_i11","checkInViewOnLoad","$scrollElement","scrollElementWidth","scrollElementHeight","_swiper$params2","LinearSpline","guess","i1","i3","binarySearch","interpolate","removeSpline","control","spline","inverse","by","_t","controlledTranslate","controlled","setControlledTranslate","getInterpolateFunction","setControlledTransition","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","hasPagination","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","handlePointerDown","handlePointerUp","handleFocus","$containerEl","repeat","live","addElLive","_swiper$navigation5","updateNavigation","bulletEl","keepQuery","slugify","getPathValues","urlOverride","pathArray","part","setHistory","currentState","scrollToSlide","_slide3","_index3","setHistoryPopState","hashNavigation","watchState","onHashChange","newHash","setHash","_slide4","_slide5","_index4","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","_i12","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","velocityEvent","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","moveDistance","currentSlideSize","slidesNumberEvenToRows","slidesPerRow","numFullColumns","_swiper$params$grid","newSlideOrderIndex","column","row","_swiper$params3","_swiper$params$grid2","groupIndex","slideIndexInGroup","columnsInGroup","_swiper$params4","fadeEffect","crossFade","tx","ty","slideOpacity","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","$cubeShadowEl","wrapperRotate","slideAngle","tz","_transform","shadowAngle","sin","scale1","scale2","_offset2","zFactor","flipEffect","limitRotation","_offset3","rotateY","rotateX","zIndex","_transform2","coverflowEffect","rotate","stretch","offsetMultiplier","translateZ","slideTransform","$shadowBeforeEl","$shadowAfterEl","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","isCenteredSlides","custom","getTranslateValue","translateString","rotateString","scaleString","opacityString","shadowOpacity","cardsEffect","perSlideRotate","perSlideOffset","_swiper$touchEventsDa","_offset4","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","_transform3","toggleAutoCalcButtonAndTooltip","automaticCalculationValidate","isScroll","isValid","scrollOffset","suchikeikakuIndustryId","businessType","jikoshikin","kariire","kaigyoshikinSonota","uriage1y","uriage2y","uriage3y","send_data","textStatus","setInitialValueForKaigyoShikin","addKaigyoShikinEventListenerAll","kaigyoHiyoTooltip","untenShikinTooltip","jinkenhiTooltip","addEventListenerToTooltips","errorThrown","myModal","modalSelector","targetStr","jfcTemplatesBannerBottom","reCalcModal","reCalcTargetStr","reCalcTargetIdentifier","handleClickSelectButton","hiddenVal","setInitAsideSummary","sumInputs","kaigyoShikinTotal","handleRangeInputChange","setAsideSummary","handleKaigyoHiyoInputChange","dataInputs","kaigyoHiyoTotal","handleKaigyoShikinSetSimulationBar","handleKaigyoShikinChange","currentSum","rangeInputs","slider","channels","require","webpackEmptyContext","req","clear","_handled","_value","_deferreds","h","setImmediate","all","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","A","uid_","takeRecords","nodes_","removeTransientObservers","callback_","subtree","enqueue","records_","C","addedNodes","removedNodes","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","postMessage","ShadowDOMPolyfill","wrapIfNeeded","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","relatedNode","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","performance","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","olderShadowRoot","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","_URL","localName","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","createdCallback","native","HTMLTemplateElement","decorate","getRegisteredDefinition","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","__name","lifecycle","ancestry","registry","instanceof","reservedTagList","readyTime","elapsed","unwrapIfNeeded","__importsParsingHook","eager","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","contentsForInspection","toJSONString","toUTF16String","UTF16String","getCacheKey","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","added","removed","utf16String","codepoints","fromCodepoints","_t2","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","_t3","initialize","connect","connectedCallback","disconnectedCallback","_n2","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","_t4","startContainer","endContainer","dataTransferIsPlainText","dataTransferIsWritable","keyEventIsKeyboardCommand","RTL_PATTERN","getDirection","dirName","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","isEmpty","toObject","ObjectGroup","objects","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","ElementStore","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","attachFiles","bold","captionPlaceholder","heading1","indent","italic","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","numberList","exclusive","fileSize","precision","formatter","byte","toFixed","inheritable","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","fileInputId","_t7","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","InputController","mutationObserver","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","paste","R","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","isEnded","getSelectedDocument","Files","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","updateAttributesForImage","getURL","getPreviewURL","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","getLastAttribute","shouldAddExtraNewlineElement","getBlockBreakPosition","elementStore","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","didSync","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","forbiddenProtocols","forbiddenElements","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","elementIsRemovable","sanitizeElement","elementIsForbidden","elementIsntSerializable","HTMLParser","blocks","blockElements","processedElements","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","SelectionChangeObserver","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","queryCommandSupported","execCommand","labels","editorController","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","globalThis","activestorage","findElements","inputSelector","autostart","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","suuchiGraph","suuchiGraphScroll","onscroll","kaigyoShikin","kaigyoHiyo","kaigyoShikinZan","setSimulationBar","sales1y","sales2y","sales3y","cost1y","cost2y","cost3y","profit1y","profit2y","profit3y","sales","cost","benefit","barId","salesId","costId","benefitId","suuchiShikin","suuchiHiyou","benefit1","benefit2","benefit3","costRatio","targetBar","salesPara","costPara","benefitPara","cautionAreasKaigyou","cautionAreas1","cautionAreas2","cautionAreas3","color","getIframeHeight","contentWindow","$backToTop","fixedFooter","setCustomPropertyFixedFooterHeight","fixedFooterHeight","businessTypeValidation","hasInputValue","isDefaultValueSet","checkboxExUsage","selectedText","isDetailSearch","relatedTop","webpackContext","webpackContextResolve","calcSection7","setSetsubiShikinSogaku","setUntenShikinSogaku","setHitsuyounaShikinSogaku","setChotatsuHoho","checkSougakuAndSetMessage","hitsuyounaShikinSogaku","chotatsuHohoSogaku","setDisabledToSogyoBtnNext","changeColorHikakuShikinSp","setReturnToContentsBtnPaddingBottom","toggleJigyoKeiken","checkedId","disableSelectField","enableSelectField","toggleShikakuUmu","toggleChizaiUmu","jqSelectElm","SogyoKeikakuUpdateDelimitedMoney","isTextarea","keyPressed","targetName","targetViewType","targetCharCount","charCount","toggleForm","feedbacks","feedbackArray","formAmmount","currentPage","formId","btnId","feedback","setSogyoKeikakuMainInnerMinHeight","toggleSogyoBtnReverseFirstSogyoBtnReverseFinal","handleStepBtn","idNumber","handleStepNavBtn","toggleAccordion","accordionId","iconId","accordionBtn","accordion","icon","toggleAccordionIconOnLoad","handleInputChangeItem0","sogyokeikakushomei","templatefullname","templatesakuseibi","handleInputChangeItem1","sogyodoki1","sogyodoki2","sogyodoki3","sogyodoki4","handleInputChangeRyakureki","keirekiNen1","keirekiGetsu1","keirekiNaiyo1","keirekiNen2","keirekiGetsu2","keirekiNaiyo2","keirekiNen3","keirekiGetsu3","keirekiNaiyo3","keirekiNen4","keirekiGetsu4","keirekiNaiyo4","keirekiNen5","keirekiGetsu5","keirekiNaiyo5","keirekiNen6","keirekiGetsu6","keirekiNaiyo6","handleInputChangeItem2","handleInputChangeCarrer1","career1_1","career1_2","career1_3","additionalInput1","additionalInput2","handleInputChangeCarrer2","career2_1","career2_2","additionalInput3","handleInputChangeCarrer3","career3_1","career3_2","additionalInput4","handleInputChangeShohin","shohingaiyo1","shohinshare1","shohingaiyo2","shohinshare2","shohingaiyo3","shohinshare3","handleInputChangeItem3","handleInputChangeSalesPoint","salesPoint1","salesPoint2","salesPoint3","handleInputChangeHanbaiTarget","hambaiTarget1","hambaiTarget2","hambaiTarget3","handleInputChangeShijo","shijokankyo1","shijokankyo2","shijokankyo3","handleInputChangeHanbaisaki","hambaisakimei1","hambaisakimeiKana1","hambaisakiShozaichi1","hambaisakiShare1","hambaisakikakewariai1","hambaisakishimebi1","hambaisakiKaishubi1","hambaisakimei2","hambaisakimeiKana2","hambaisakiShozaichi2","hambaisakiShare2","hambaisakikakewariai2","hambaisakishimebi2","hambaisakiKaishubi2","hambaisakiTorihikisakisu","hambaisakiShareHoka","hambaisakiKakewariaiHoka","hambaisakiShimebiHoka","hambaisakiKaishubiHoka","handleInputChangeItem4","handleInputChangeShiire","shiiresakimei1","shiiresakimeiKana1","shiiresakiShozaichi1","shiiresakiShare1","shiiresakiKakewariai1","shiiresakiShimebi1","shiiresakiKaishubi1","shiiresakimei2","shiiresakimeiKana2","shiiresakiShozaichi2","shiiresakiShare2","shiiresakiKakewariai2","shiiresakiShimebi2","shiiresakiKaishubi2","shiiresakitorihikisakisu","shiiresakishareHoka","shiiresakikakewariaiHoka","shiiresakishimebiHoka","shiiresakiKaishubiHoka","handleInputChangeGaichu","gaichusakimei1","gaichusakimeiKana1","gaichusakiShozaichi1","gaichusakiShare1","gaichusakikakewariai1","gaichusakishimebi1","gaichusakiKaishubi1","gaichusakitorihikisakisu","gaichusakishareHoka","gaichusakikakewariaiHoka","gaichusakishimebiHoka","gaichusakiKaishubiHoka","handleInputChangeJinkenhi","jinkenhiShimebi","jinkenhiShiharaibi","jinkenhiBonusGetsu1","jinkenhiBonusGetsu2","handleInputChangeItem5","yakuinsu","jugyoinsu","uchikazoku","uchipart","handleInputChangeItem6","kariiresaki1","usage1jigyo","usage1jutaku","usage1car","usage1kyoiku","usage1card","usage1sonota","kariirezandaka1","nenkanhensaigaku1","kariiresaki2","usage2jigyo","usage2jutaku","usage2car","usage2kyoiku","usage2card","usage2sonota","kariirezandaka2","nenkanhensaigaku2","kariiresaki3","usage3jigyo","usage3jutaku","usage3car","usage3kyoiku","usage3card","usage3sonota","kariirezandaka3","nenkanhensaigaku3","handleInputChangeShikin","setsubishikingaiyo1","setsubishikinmitsumorisaki1","setsubishikinkingaku1","setsubishikingaiyo2","setsubishikinmitsumorisaki2","setsubishikinkingaku2","setsubishikingaiyo3","setsubishikinmitsumorisaki3","setsubishikinkingaku3","setsubishikingaiyo4","setsubishikinmitsumorisaki4","setsubishikinkingaku4","setsubishikingaiyo5","setsubishikinmitsumorisaki5","setsubishikinkingaku5","setsubishikingaiyo6","setsubishikinmitsumorisaki6","setsubishikinkingaku6","setsubishikingaiyo7","setsubishikinmitsumorisaki7","setsubishikinkingaku7","setsubishikingaiyo8","setsubishikinmitsumorisaki8","setsubishikinkingaku8","setsubishikingaiyo9","setsubishikinmitsumorisaki9","setsubishikinkingaku9","setsubishikingaiyo10","setsubishikinmitsumorisaki10","setsubishikinkingaku10","untenshikingaiyo1","untenshikinkingaku1","untenshikingaiyo2","untenshikinkingaku2","untenshikingaiyo3","untenshikinkingaku3","untenshikingaiyo4","untenshikinkingaku4","handleInputChangeItem7","handleInputChangeChotatsu","shinzokuKariirekin","shinzokuKariiremoto","shinzokuHensaihoho","kokoKariirekin","kokoHensaihoho","sonotaKariirekin","sonotaHensaihoho","handleInputChangeKido","kidoMedoNen","kidoMedoGetsu","handleInputChangeItem8","handleInputChangeMitoshi","toshouriagedaka","kidogouriagedaka","toshouriagegenka","kidogouriagegenka","toshojinkenhi","kidogojinkenhi","toshoyachin","kidogoyachin","toshorisoku","kidogorisoku","toshosonota","kidogosonota","handleInputChangeKonkyo","keisankonkyo","handleInputChangeItem9","jiyukinyuran","addMoreItem","hiddenItems","hideMoreButton","moreButton","writeInputLength","textarea","indicatorId","inputValueLength","contentId","moreButton1","moreItemsClass1","moreButton2","moreItemsClass2","moreButton3","moreItemsClass3","moreButton4","moreItemsClass4","moreButton5","moreItemsClass5","moreButton6","moreItemsClass6","moreButton7","moreItemsClass7","moreButton8","moreItemsClass8","moreButton9","moreItemsClass9","moreButton10","moreItemsClass10","moreButton11","moreItemsClass11","countedTextarea1","countedTextarea2","countedTextarea3","countedTextarea4","countedTextarea5","countedTextarea6","countedTextarea7","countedTextarea8","countedTextarea9","countedTextarea10","countedTextarea11","countedTextarea12","countedTextarea13","countedTextarea14","countedTextarea15","countedTextarea16","countedTextarea17","countedTextarea18","countedTextarea19","countedTextarea20","countedTextarea21","countedTextarea22","countedTextarea23","countedTextarea24","countedTextarea25","countedTextarea26","countedTextarea27","countedTextarea28","countedTextarea29","countedTextarea30","countedTextarea31","countedTextarea32","countedTextarea33","countedTextarea34","countedTextarea35","countedTextarea36","countedTextarea37","countedTextarea38","countedTextarea39","countedTextarea40","countedTextarea41","countedTextarea42","countedTextarea43","countedTextarea44","countedTextarea45","countedTextarea46","countedTextarea47","countedTextarea48","countedTextarea49","countedTextarea50","countedTextarea51","countedTextarea52","countedTextarea53","countedTextarea54","inputEvent","tooltipTriggerEl","modalId","ankenId","qParams","option__original","320","768","1025","option__means","option__subsidy","option__loan","option__shindan","option__history","option__history__only","option__mainDetailRelation","copyTarget","writeText","tooltipEl","tooltip","numBtnSet","suuchiInput","suuchiPlus","suuchiMinus","inputValue","userBusinessTypeValidation","toggleRegisterAgreeCheckBox","registerAgreeCheckBoxSelector","businessTypeRadioButtonSelector","toggleSubmitButtonDisabled","checkBoxId","submitButtonId","myModals","$visibleModalsSortByZIndex","trimOverNchars","emailAddressInputSelector","submitButtonSelector","sendButton","emailAddressIsValid","downloadModal","downloadModalSelector","emailSendCompletelyModal","emailSendCompletelyModalSelector","modalContentTargetSelector","sp","selectedFoundingTemplate","selectedFoundingTemplateJson","jfc_template_setsubishikin_gaiyo_1","jfc_template_setsubishikin_kingaku_1","jfc_template_setsubishikin_gaiyo_2","jfc_template_setsubishikin_kingaku_2","jfc_template_setsubishikin_gaiyo_3","jfc_template_setsubishikin_kingaku_3","jfc_template_setsubishikin_gaiyo_4","jfc_template_setsubishikin_kingaku_4","jfc_template_setsubishikin_gaiyo_5","jfc_template_setsubishikin_kingaku_5","jfc_template_setsubishikin_gaiyo_6","jfc_template_setsubishikin_kingaku_6","jfc_template_setsubishikin_gaiyo_7","jfc_template_setsubishikin_kingaku_7","jfc_template_untenshikin_gaiyo_1","jfc_template_untenshikin_kingaku_1","jfc_template_untenshikin_gaiyo_2","jfc_template_untenshikin_kingaku_2","jfc_template_untenshikin_gaiyo_3","jfc_template_untenshikin_kingaku_3","jfc_template_untenshikin_gaiyo_4","jfc_template_untenshikin_kingaku_4","jfc_template_jikoshikin","jfc_template_shinzoku_kariirekin","jfc_template_koko_kariirekin","jfc_template_tosho_uriagedaka","jfc_template_kidogo_uriagedaka","jfc_template_tosho_uriagegenka","jfc_template_kidogo_uriagegenka","jfc_template_tosho_jinkenhi","jfc_template_kidogo_jinkenhi","jfc_template_tosho_yachin","jfc_template_kidogo_yachin","jfc_template_tosho_risoku","jfc_template_kidogo_risoku","jfc_template_tosho_sonota","jfc_template_kidogo_sonota","targetId","sectionBasicTop","section1Top","section2Top","section3Top","section4Top","section5Top","section6Top","section7Top","section8Top","section9Top","sectionThreshold","beforeunloadHandler","diagnosisAnswersArray","cookie","expires","setFullYear","getFullYear","setCookie","toggleCautionQuestion104Answer","question104Answer","question102Answer","toggleCautionQuestion105Answer","toggleCautionQuestion106Answer","toggleCautionQuestion107Answer","toggleCautionQuestion108Answer","toggleCautionQuestion109Answer","toggleCautionQuestion110Answer","toggleQ3Section","question103Answer","question105Answer","question106Answer","question108Answer","question109Answer","question110Answer","toggleQ4Section","employmentCheckboxes","businessCheckboxes","employeeCheckboxes","allCheck","innerCheckboxSelector","allCheckboxSelector","toggleTableAccordion","itemClass","btnTextId","btnIconId","accordionItems","btnText","btnIcon","copySpModal","copyText","getSuggestionsTimer","inputStr","keywordHidden","inputField","suggestionsBox","inputFieldSp","suggestionsBoxSp","reflectInputTextField","hideSuggestions","handleCursorMove","getWordAtCursor","getSuggestions","suggestResult","displaySuggestions","selectionStart","leftPart","leftSpaceIndex","leftFullWidthSpaceIndex","rightPart","rightSpaceIndex","rightFullWidthSpaceIndex","Infinity","suggestions","suggestion","suggestionItem","newWord","newCursorPosition","setSelectionRange","replaceWordAtCursor","showSuggestions","targetList","tagsInput","searchTagsContainer","searchTagsContainerSp","searchTagsResultContainerSp","toggleTagSelection","updateTagsInput","sortSpTag","selectedButtons","unSelectedButtons","tagItem","pcTagButton","targetItem","targetButton","prependTag1","selectedTags","selectedTagButtons","uniqueSelectedTags","categoryInput","categoryButton","categoryList","categoryButtonSp","categoryListSp","categoryListCloseSp","categoryListBgSp","categoryListResult","createCategoryDrawer1","createCategoryDrawer2","createCategoryDrawer3","iconPlus","iconMinus","categoryListItem","updateCategory","categoryItem","majorItem","majorButton","minorItemWrapper","minorItem","toggleIcon","plusIcon","minusIcon","category","categoryButtonText","categoryButtonTextSp","categoryButtonIcon","toggleStarActivation","toggleStarActivationDetail","popularItem","favoriteButton","graystar","yellowstar","searchForm","upperRow","lowerRow","lastScrollTop","ticking","scrollDown","upperRowHeight","lowerRowHeight","paddingTop","inputChecked","$inModalInput","$rows","$newElements","prefName","$areaGroupElement","$areaTitleElement","$areaContentsElement","$input","$label","labelText","$contentsItem","$cityInputElement","$cityLabelElement","inModalInputDataId","inModalInputChecked","refreshDisplayedOthersModalSelectedElementCount","originVal","$mainSearchConditionSubmitButton","mainSearchConditionPrefModal","$mainSearchConditionOthersButton","$countTargetElements","searchResultCardBookmarkTagStateHoverIcons","setToggleBehavior","siteFooterToggleClassName","collapsibleSections","animateTiming","collapsibleSection","onfinish","siteHeader","siteHeaderMenuBtn","siteHeaderMenuBtnText","siteHeaderMenuContent","siteHeaderNavBtns","siteHeaderToggles","siteHeaderMenuBackdrop","siteDropdownPcContents","siteHeaderNavBackdrops","closeMenu","setCustomProperty","headerHeight","changedMediaQuery","toggleOpen","mediaQuery","btn","headerNavContent","siteHeaderNavBackdrop","handleShow","handleHide","timeoutID","modal","siteFooterToggles","isPc"],"mappings":"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OD,QAAU,IAA0B,6D,gBCA3CC,EAAOD,QAAU,IAA0B,6D,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,+D,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,+D,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,+D,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,+D,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,4D,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,8D,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,yD,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,qE,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,kE,gBCA3CC,EAAOD,QAAU,IAA0B,sE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,gE,gBCA3CC,EAAOD,QAAU,IAA0B,mE,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,0E,gBCA3CC,EAAOD,QAAU,IAA0B,iE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,wG,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,oE,gBCA3CC,EAAOD,QAAU,IAA0B,yE,gBCA3CC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","file":"js/search/application-8095d3a6198e675c2b38.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 434);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\n/*!\n * jQuery JavaScript Library v3.6.3\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-12-20T21:28Z\n */\n(function (global, factory) {\n  \"use strict\";\n\n  if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n    // For CommonJS and CommonJS-like environments where a proper `window`\n    // is present, execute the factory and get jQuery.\n    // For environments that do not have a `window` with a `document`\n    // (such as Node.js), expose a factory as module.exports.\n    // This accentuates the need for the creation of a real `window`.\n    // e.g. var jQuery = require(\"jquery\")(window);\n    // See ticket trac-14549 for more info.\n    module.exports = global.document ? factory(global, true) : function (w) {\n      if (!w.document) {\n        throw new Error(\"jQuery requires a window with a document\");\n      }\n\n      return factory(w);\n    };\n  } else {\n    factory(global);\n  } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\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\n  var arr = [];\n  var getProto = Object.getPrototypeOf;\n  var _slice = arr.slice;\n  var flat = arr.flat ? function (array) {\n    return arr.flat.call(array);\n  } : function (array) {\n    return arr.concat.apply([], array);\n  };\n  var push = arr.push;\n  var indexOf = arr.indexOf;\n  var class2type = {};\n  var toString = class2type.toString;\n  var hasOwn = class2type.hasOwnProperty;\n  var fnToString = hasOwn.toString;\n  var ObjectFunctionString = fnToString.call(Object);\n  var support = {};\n\n  var isFunction = function isFunction(obj) {\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    // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n    // Plus for old WebKit, typeof returns \"function\" for HTML collections\n    // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n    return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n  };\n\n  var isWindow = function isWindow(obj) {\n    return obj != null && obj === obj.window;\n  };\n\n  var document = window.document;\n  var preservedScriptAttributes = {\n    type: true,\n    src: true,\n    nonce: true,\n    noModule: true\n  };\n\n  function DOMEval(code, node, doc) {\n    doc = doc || document;\n    var i,\n        val,\n        script = doc.createElement(\"script\");\n    script.text = code;\n\n    if (node) {\n      for (i in preservedScriptAttributes) {\n        // Support: Firefox 64+, Edge 18+\n        // Some browsers don't support the \"nonce\" property on scripts.\n        // On the other hand, just using `getAttribute` is not enough as\n        // the `nonce` attribute is reset to an empty string whenever it\n        // becomes browsing-context connected.\n        // See https://github.com/whatwg/html/issues/2369\n        // See https://html.spec.whatwg.org/#nonce-attributes\n        // The `node.getAttribute` check was added for the sake of\n        // `jQuery.globalEval` so that it can fake a nonce-containing node\n        // via an object.\n        val = node[i] || node.getAttribute && node.getAttribute(i);\n\n        if (val) {\n          script.setAttribute(i, val);\n        }\n      }\n    }\n\n    doc.head.appendChild(script).parentNode.removeChild(script);\n  }\n\n  function toType(obj) {\n    if (obj == null) {\n      return obj + \"\";\n    } // Support: Android <=2.3 only (functionish RegExp)\n\n\n    return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(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  var version = \"3.6.3\",\n      // Define a local copy of jQuery\n  jQuery = function jQuery(selector, context) {\n    // The jQuery object is actually just the init constructor 'enhanced'\n    // Need init if jQuery is called (just allow error to be thrown if not included)\n    return new jQuery.fn.init(selector, context);\n  };\n\n  jQuery.fn = jQuery.prototype = {\n    // The current version of jQuery being used\n    jquery: version,\n    constructor: jQuery,\n    // The default length of a jQuery object is 0\n    length: 0,\n    toArray: function toArray() {\n      return _slice.call(this);\n    },\n    // Get the Nth element in the matched element set OR\n    // Get the whole matched element set as a clean array\n    get: function get(num) {\n      // Return all the elements in a clean array\n      if (num == null) {\n        return _slice.call(this);\n      } // Return just the one element from the set\n\n\n      return num < 0 ? this[num + this.length] : this[num];\n    },\n    // Take an array of elements and push it onto the stack\n    // (returning the new matched element set)\n    pushStack: function pushStack(elems) {\n      // Build a new jQuery matched element set\n      var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n      ret.prevObject = this; // Return the newly-formed element set\n\n      return ret;\n    },\n    // Execute a callback for every element in the matched set.\n    each: function each(callback) {\n      return jQuery.each(this, callback);\n    },\n    map: function map(callback) {\n      return this.pushStack(jQuery.map(this, function (elem, i) {\n        return callback.call(elem, i, elem);\n      }));\n    },\n    slice: function slice() {\n      return this.pushStack(_slice.apply(this, arguments));\n    },\n    first: function first() {\n      return this.eq(0);\n    },\n    last: function last() {\n      return this.eq(-1);\n    },\n    even: function even() {\n      return this.pushStack(jQuery.grep(this, function (_elem, i) {\n        return (i + 1) % 2;\n      }));\n    },\n    odd: function odd() {\n      return this.pushStack(jQuery.grep(this, function (_elem, i) {\n        return i % 2;\n      }));\n    },\n    eq: function eq(i) {\n      var len = this.length,\n          j = +i + (i < 0 ? len : 0);\n      return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n    },\n    end: function end() {\n      return this.prevObject || this.constructor();\n    },\n    // For internal use only.\n    // Behaves like an Array's method, not like a jQuery method.\n    push: push,\n    sort: arr.sort,\n    splice: arr.splice\n  };\n\n  jQuery.extend = jQuery.fn.extend = function () {\n    var options,\n        name,\n        src,\n        copy,\n        copyIsArray,\n        clone,\n        target = arguments[0] || {},\n        i = 1,\n        length = arguments.length,\n        deep = false; // Handle a deep copy situation\n\n    if (typeof target === \"boolean\") {\n      deep = target; // Skip the boolean and the target\n\n      target = arguments[i] || {};\n      i++;\n    } // Handle case when target is a string or something (possible in deep copy)\n\n\n    if (_typeof(target) !== \"object\" && !isFunction(target)) {\n      target = {};\n    } // Extend jQuery itself if only one argument is passed\n\n\n    if (i === length) {\n      target = this;\n      i--;\n    }\n\n    for (; i < length; i++) {\n      // Only deal with non-null/undefined values\n      if ((options = arguments[i]) != null) {\n        // Extend the base object\n        for (name in options) {\n          copy = options[name]; // Prevent Object.prototype pollution\n          // Prevent never-ending loop\n\n          if (name === \"__proto__\" || target === copy) {\n            continue;\n          } // Recurse if we're merging plain objects or arrays\n\n\n          if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n            src = target[name]; // Ensure proper type for the source value\n\n            if (copyIsArray && !Array.isArray(src)) {\n              clone = [];\n            } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n              clone = {};\n            } else {\n              clone = src;\n            }\n\n            copyIsArray = false; // Never move original objects, clone them\n\n            target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n          } else if (copy !== undefined) {\n            target[name] = copy;\n          }\n        }\n      }\n    } // Return the modified object\n\n\n    return target;\n  };\n\n  jQuery.extend({\n    // Unique for each copy of jQuery on the page\n    expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n    // Assume jQuery is ready without the ready module\n    isReady: true,\n    error: function error(msg) {\n      throw new Error(msg);\n    },\n    noop: function noop() {},\n    isPlainObject: function isPlainObject(obj) {\n      var proto, Ctor; // Detect obvious negatives\n      // Use toString instead of jQuery.type to catch host objects\n\n      if (!obj || toString.call(obj) !== \"[object Object]\") {\n        return false;\n      }\n\n      proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n      if (!proto) {\n        return true;\n      } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n      Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n      return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n    },\n    isEmptyObject: function isEmptyObject(obj) {\n      var name;\n\n      for (name in obj) {\n        return false;\n      }\n\n      return true;\n    },\n    // Evaluates a script in a provided context; falls back to the global one\n    // if not specified.\n    globalEval: function globalEval(code, options, doc) {\n      DOMEval(code, {\n        nonce: options && options.nonce\n      }, doc);\n    },\n    each: function each(obj, callback) {\n      var length,\n          i = 0;\n\n      if (isArrayLike(obj)) {\n        length = obj.length;\n\n        for (; i < length; i++) {\n          if (callback.call(obj[i], i, obj[i]) === false) {\n            break;\n          }\n        }\n      } else {\n        for (i in obj) {\n          if (callback.call(obj[i], i, obj[i]) === false) {\n            break;\n          }\n        }\n      }\n\n      return obj;\n    },\n    // results is for internal usage only\n    makeArray: function makeArray(arr, results) {\n      var ret = results || [];\n\n      if (arr != null) {\n        if (isArrayLike(Object(arr))) {\n          jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n        } else {\n          push.call(ret, arr);\n        }\n      }\n\n      return ret;\n    },\n    inArray: function inArray(elem, arr, i) {\n      return arr == null ? -1 : indexOf.call(arr, elem, i);\n    },\n    // Support: Android <=4.0 only, PhantomJS 1 only\n    // push.apply(_, arraylike) throws on ancient WebKit\n    merge: function merge(first, second) {\n      var len = +second.length,\n          j = 0,\n          i = first.length;\n\n      for (; j < len; j++) {\n        first[i++] = second[j];\n      }\n\n      first.length = i;\n      return first;\n    },\n    grep: function grep(elems, callback, invert) {\n      var callbackInverse,\n          matches = [],\n          i = 0,\n          length = elems.length,\n          callbackExpect = !invert; // Go through the array, only saving the items\n      // that pass the validator function\n\n      for (; i < length; i++) {\n        callbackInverse = !callback(elems[i], i);\n\n        if (callbackInverse !== callbackExpect) {\n          matches.push(elems[i]);\n        }\n      }\n\n      return matches;\n    },\n    // arg is for internal usage only\n    map: function map(elems, callback, arg) {\n      var length,\n          value,\n          i = 0,\n          ret = []; // Go through the array, translating each of the items to their new values\n\n      if (isArrayLike(elems)) {\n        length = elems.length;\n\n        for (; i < length; i++) {\n          value = callback(elems[i], i, arg);\n\n          if (value != null) {\n            ret.push(value);\n          }\n        } // Go through every key on the object,\n\n      } else {\n        for (i in elems) {\n          value = callback(elems[i], i, arg);\n\n          if (value != null) {\n            ret.push(value);\n          }\n        }\n      } // Flatten any nested arrays\n\n\n      return flat(ret);\n    },\n    // A global GUID counter for objects\n    guid: 1,\n    // jQuery.support is not used in Core but other projects attach their\n    // properties to it so it needs to exist.\n    support: support\n  });\n\n  if (typeof Symbol === \"function\") {\n    jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n  } // Populate the class2type map\n\n\n  jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n    class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n  });\n\n  function isArrayLike(obj) {\n    // Support: real iOS 8.2 only (not reproducible in simulator)\n    // `in` check used to prevent JIT error (gh-2145)\n    // hasOwn isn't used here due to false negatives\n    // regarding Nodelist length in IE\n    var length = !!obj && \"length\" in obj && obj.length,\n        type = toType(obj);\n\n    if (isFunction(obj) || isWindow(obj)) {\n      return false;\n    }\n\n    return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n  }\n\n  var Sizzle =\n  /*!\n   * Sizzle CSS Selector Engine v2.3.9\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: 2022-12-19\n   */\n  function (window) {\n    var i,\n        support,\n        Expr,\n        getText,\n        isXML,\n        tokenize,\n        compile,\n        select,\n        outermostContext,\n        sortInput,\n        hasDuplicate,\n        // Local document vars\n    setDocument,\n        document,\n        docElem,\n        documentIsHTML,\n        rbuggyQSA,\n        rbuggyMatches,\n        matches,\n        contains,\n        // Instance-specific data\n    expando = \"sizzle\" + 1 * new Date(),\n        preferredDoc = window.document,\n        dirruns = 0,\n        done = 0,\n        classCache = createCache(),\n        tokenCache = createCache(),\n        compilerCache = createCache(),\n        nonnativeSelectorCache = createCache(),\n        sortOrder = function sortOrder(a, b) {\n      if (a === b) {\n        hasDuplicate = true;\n      }\n\n      return 0;\n    },\n        // Instance methods\n    hasOwn = {}.hasOwnProperty,\n        arr = [],\n        pop = arr.pop,\n        pushNative = arr.push,\n        push = arr.push,\n        slice = arr.slice,\n        // Use a stripped-down indexOf as it's faster than native\n    // https://jsperf.com/thor-indexof-vs-for/5\n    indexOf = function indexOf(list, elem) {\n      var i = 0,\n          len = list.length;\n\n      for (; i < len; i++) {\n        if (list[i] === elem) {\n          return i;\n        }\n      }\n\n      return -1;\n    },\n        booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n        // Regular expressions\n    // http://www.w3.org/TR/css3-selectors/#whitespace\n    whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n        // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n    identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n        // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n    attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n    \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n    // or strings [capture 3 or capture 4]\"\n    \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n        pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n    // 1. quoted (capture 3; capture 4 or capture 5)\n    \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n    \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n    \".*\" + \")\\\\)|)\",\n        // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n    rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n        rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n        rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n        rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n        rdescend = new RegExp(whitespace + \"|>\"),\n        rpseudo = new RegExp(pseudos),\n        ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n        matchExpr = {\n      \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n      \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n      \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n      \"ATTR\": new RegExp(\"^\" + attributes),\n      \"PSEUDO\": new RegExp(\"^\" + pseudos),\n      \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n      \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n      // For use in libraries implementing .is()\n      // We use this for POS matching in `select`\n      \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n    },\n        rhtml = /HTML$/i,\n        rinputs = /^(?:input|select|textarea|button)$/i,\n        rheader = /^h\\d$/i,\n        rnative = /^[^{]+\\{\\s*\\[native \\w/,\n        // Easily-parseable/retrievable ID or TAG or CLASS selectors\n    rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n        rsibling = /[+~]/,\n        // CSS escapes\n    // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n    runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n        funescape = function funescape(escape, nonHex) {\n      var high = \"0x\" + escape.slice(1) - 0x10000;\n      return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n      nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n      // Support: IE <=11+\n      // For values outside the Basic Multilingual Plane (BMP), manually construct a\n      // surrogate pair\n      high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n    },\n        // CSS string/identifier serialization\n    // https://drafts.csswg.org/cssom/#common-serializing-idioms\n    rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n        fcssescape = function fcssescape(ch, asCodePoint) {\n      if (asCodePoint) {\n        // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n        if (ch === \"\\0\") {\n          return \"\\uFFFD\";\n        } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n        return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n      } // Other potentially-special ASCII characters get backslash-escaped\n\n\n      return \"\\\\\" + ch;\n    },\n        // Used for iframes\n    // See setDocument()\n    // Removing the function wrapper causes a \"Permission Denied\"\n    // error in IE\n    unloadHandler = function unloadHandler() {\n      setDocument();\n    },\n        inDisabledFieldset = addCombinator(function (elem) {\n      return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n    }, {\n      dir: \"parentNode\",\n      next: \"legend\"\n    }); // Optimize for push.apply( _, NodeList )\n\n\n    try {\n      push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n      // Detect silently failing push.apply\n      // eslint-disable-next-line no-unused-expressions\n\n      arr[preferredDoc.childNodes.length].nodeType;\n    } catch (e) {\n      push = {\n        apply: arr.length ? // Leverage slice if possible\n        function (target, els) {\n          pushNative.apply(target, slice.call(els));\n        } : // Support: IE<9\n        // Otherwise append directly\n        function (target, els) {\n          var j = target.length,\n              i = 0; // Can't trust NodeList.length\n\n          while (target[j++] = els[i++]) {}\n\n          target.length = j - 1;\n        }\n      };\n    }\n\n    function Sizzle(selector, context, results, seed) {\n      var m,\n          i,\n          elem,\n          nid,\n          match,\n          groups,\n          newSelector,\n          newContext = context && context.ownerDocument,\n          // nodeType defaults to 9, since context defaults to document\n      nodeType = context ? context.nodeType : 9;\n      results = results || []; // Return early from calls with invalid selector or context\n\n      if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n        return results;\n      } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n      if (!seed) {\n        setDocument(context);\n        context = context || document;\n\n        if (documentIsHTML) {\n          // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n          // (excepting DocumentFragment context, where the methods don't exist)\n          if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n            // ID selector\n            if (m = match[1]) {\n              // Document context\n              if (nodeType === 9) {\n                if (elem = context.getElementById(m)) {\n                  // Support: IE, Opera, Webkit\n                  // TODO: identify versions\n                  // getElementById can match elements by name instead of ID\n                  if (elem.id === m) {\n                    results.push(elem);\n                    return results;\n                  }\n                } else {\n                  return results;\n                } // Element context\n\n              } else {\n                // Support: IE, Opera, Webkit\n                // TODO: identify versions\n                // getElementById can match elements by name instead of ID\n                if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n                  results.push(elem);\n                  return results;\n                }\n              } // Type selector\n\n            } else if (match[2]) {\n              push.apply(results, context.getElementsByTagName(selector));\n              return results; // Class selector\n            } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n              push.apply(results, context.getElementsByClassName(m));\n              return results;\n            }\n          } // Take advantage of querySelectorAll\n\n\n          if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n          // Exclude object elements\n          nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n            newSelector = selector;\n            newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n            // descendant combinators, which is not what we want.\n            // In such cases, we work around the behavior by prefixing every selector in the\n            // list with an ID selector referencing the scope context.\n            // The technique has to be used as well when a leading combinator is used\n            // as such selectors are not recognized by querySelectorAll.\n            // Thanks to Andrew Dupont for this technique.\n\n            if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n              // Expand context for sibling selectors\n              newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n              // supports it & if we're not changing the context.\n\n              if (newContext !== context || !support.scope) {\n                // Capture the context ID, setting it first if necessary\n                if (nid = context.getAttribute(\"id\")) {\n                  nid = nid.replace(rcssescape, fcssescape);\n                } else {\n                  context.setAttribute(\"id\", nid = expando);\n                }\n              } // Prefix every selector in the list\n\n\n              groups = tokenize(selector);\n              i = groups.length;\n\n              while (i--) {\n                groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n              }\n\n              newSelector = groups.join(\",\");\n            }\n\n            try {\n              // `qSA` may not throw for unrecognized parts using forgiving parsing:\n              // https://drafts.csswg.org/selectors/#forgiving-selector\n              // like the `:has()` pseudo-class:\n              // https://drafts.csswg.org/selectors/#relational\n              // `CSS.supports` is still expected to return `false` then:\n              // https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n              // https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n              if (support.cssSupportsSelector && // eslint-disable-next-line no-undef\n              !CSS.supports(\"selector(:is(\" + newSelector + \"))\")) {\n                // Support: IE 11+\n                // Throw to get to the same code path as an error directly in qSA.\n                // Note: once we only support browser supporting\n                // `CSS.supports('selector(...)')`, we can most likely drop\n                // the `try-catch`. IE doesn't implement the API.\n                throw new Error();\n              }\n\n              push.apply(results, newContext.querySelectorAll(newSelector));\n              return results;\n            } catch (qsaError) {\n              nonnativeSelectorCache(selector, true);\n            } finally {\n              if (nid === expando) {\n                context.removeAttribute(\"id\");\n              }\n            }\n          }\n        }\n      } // All others\n\n\n      return select(selector.replace(rtrim, \"$1\"), context, results, seed);\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     */\n\n\n    function createCache() {\n      var keys = [];\n\n      function cache(key, value) {\n        // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n        if (keys.push(key + \" \") > Expr.cacheLength) {\n          // Only keep the most recent entries\n          delete cache[keys.shift()];\n        }\n\n        return cache[key + \" \"] = value;\n      }\n\n      return cache;\n    }\n    /**\n     * Mark a function for special use by Sizzle\n     * @param {Function} fn The function to mark\n     */\n\n\n    function markFunction(fn) {\n      fn[expando] = true;\n      return fn;\n    }\n    /**\n     * Support testing using an element\n     * @param {Function} fn Passed the created element and returns a boolean result\n     */\n\n\n    function assert(fn) {\n      var el = document.createElement(\"fieldset\");\n\n      try {\n        return !!fn(el);\n      } catch (e) {\n        return false;\n      } finally {\n        // Remove from its parent by default\n        if (el.parentNode) {\n          el.parentNode.removeChild(el);\n        } // release memory in IE\n\n\n        el = null;\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     */\n\n\n    function addHandle(attrs, handler) {\n      var arr = attrs.split(\"|\"),\n          i = arr.length;\n\n      while (i--) {\n        Expr.attrHandle[arr[i]] = handler;\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     */\n\n\n    function siblingCheck(a, b) {\n      var cur = b && a,\n          diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n      if (diff) {\n        return diff;\n      } // Check if b follows a\n\n\n      if (cur) {\n        while (cur = cur.nextSibling) {\n          if (cur === b) {\n            return -1;\n          }\n        }\n      }\n\n      return a ? 1 : -1;\n    }\n    /**\n     * Returns a function to use in pseudos for input types\n     * @param {String} type\n     */\n\n\n    function createInputPseudo(type) {\n      return function (elem) {\n        var name = elem.nodeName.toLowerCase();\n        return name === \"input\" && elem.type === type;\n      };\n    }\n    /**\n     * Returns a function to use in pseudos for buttons\n     * @param {String} type\n     */\n\n\n    function createButtonPseudo(type) {\n      return function (elem) {\n        var name = elem.nodeName.toLowerCase();\n        return (name === \"input\" || name === \"button\") && elem.type === type;\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     */\n\n\n    function createDisabledPseudo(disabled) {\n      // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n      return function (elem) {\n        // Only certain elements can match :enabled or :disabled\n        // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n        // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n        if (\"form\" in elem) {\n          // Check for inherited disabledness on relevant non-disabled elements:\n          // * listed form-associated elements in a disabled fieldset\n          //   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n          //   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n          // * option elements in a disabled optgroup\n          //   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n          // All such elements have a \"form\" property.\n          if (elem.parentNode && elem.disabled === false) {\n            // Option elements defer to a parent optgroup if present\n            if (\"label\" in elem) {\n              if (\"label\" in elem.parentNode) {\n                return elem.parentNode.disabled === disabled;\n              } else {\n                return elem.disabled === disabled;\n              }\n            } // Support: IE 6 - 11\n            // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n            return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n            /* jshint -W018 */\n            elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n          }\n\n          return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n          // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n          // even exist on them, let alone have a boolean value.\n        } else if (\"label\" in elem) {\n          return elem.disabled === disabled;\n        } // Remaining elements are neither :enabled nor :disabled\n\n\n        return false;\n      };\n    }\n    /**\n     * Returns a function to use in pseudos for positionals\n     * @param {Function} fn\n     */\n\n\n    function createPositionalPseudo(fn) {\n      return markFunction(function (argument) {\n        argument = +argument;\n        return markFunction(function (seed, matches) {\n          var j,\n              matchIndexes = fn([], seed.length, argument),\n              i = matchIndexes.length; // Match elements found at the specified indexes\n\n          while (i--) {\n            if (seed[j = matchIndexes[i]]) {\n              seed[j] = !(matches[j] = seed[j]);\n            }\n          }\n        });\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     */\n\n\n    function testContext(context) {\n      return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n    } // Expose support vars for convenience\n\n\n    support = Sizzle.support = {};\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     */\n\n    isXML = Sizzle.isXML = function (elem) {\n      var namespace = elem && elem.namespaceURI,\n          docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n      // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n      // https://bugs.jquery.com/ticket/4833\n\n      return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\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     */\n\n\n    setDocument = Sizzle.setDocument = function (node) {\n      var hasCompare,\n          subWindow,\n          doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n\n      if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n        return document;\n      } // Update global variables\n\n\n      document = doc;\n      docElem = document.documentElement;\n      documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n      // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n\n      if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n        // Support: IE 11, Edge\n        if (subWindow.addEventListener) {\n          subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n        } else if (subWindow.attachEvent) {\n          subWindow.attachEvent(\"onunload\", unloadHandler);\n        }\n      } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n      // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n      // IE/Edge & older browsers don't support the :scope pseudo-class.\n      // Support: Safari 6.0 only\n      // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n      support.scope = assert(function (el) {\n        docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n        return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n      }); // Support: Chrome 105+, Firefox 104+, Safari 15.4+\n      // Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n      //\n      // `:is()` uses a forgiving selector list as an argument and is widely\n      // implemented, so it's a good one to test against.\n\n      support.cssSupportsSelector = assert(function () {\n        /* eslint-disable no-undef */\n        return CSS.supports(\"selector(*)\") && // Support: Firefox 78-81 only\n        // In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n        // fail this test as there's no selector to test against that.\n        // `CSS.supports` uses unforgiving parsing\n        document.querySelectorAll(\":is(:jqfake)\") && // `*` is needed as Safari & newer Chrome implemented something in between\n        // for `:has()` - it throws in `qSA` if it only contains an unsupported\n        // argument but multiple ones, one of which is supported, are fine.\n        // We want to play safe in case `:is()` gets the same treatment.\n        !CSS.supports(\"selector(:is(*,:jqfake))\");\n        /* eslint-enable */\n      });\n      /* Attributes\n      ---------------------------------------------------------------------- */\n      // Support: IE<8\n      // Verify that getAttribute really returns attributes and not properties\n      // (excepting IE8 booleans)\n\n      support.attributes = assert(function (el) {\n        el.className = \"i\";\n        return !el.getAttribute(\"className\");\n      });\n      /* getElement(s)By*\n      ---------------------------------------------------------------------- */\n      // Check if getElementsByTagName(\"*\") returns only elements\n\n      support.getElementsByTagName = assert(function (el) {\n        el.appendChild(document.createComment(\"\"));\n        return !el.getElementsByTagName(\"*\").length;\n      }); // Support: IE<9\n\n      support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n      // Check if getElementById returns elements by name\n      // The broken getElementById methods don't pick up programmatically-set names,\n      // so use a roundabout getElementsByName test\n\n      support.getById = assert(function (el) {\n        docElem.appendChild(el).id = expando;\n        return !document.getElementsByName || !document.getElementsByName(expando).length;\n      }); // ID filter and find\n\n      if (support.getById) {\n        Expr.filter[\"ID\"] = function (id) {\n          var attrId = id.replace(runescape, funescape);\n          return function (elem) {\n            return elem.getAttribute(\"id\") === attrId;\n          };\n        };\n\n        Expr.find[\"ID\"] = function (id, context) {\n          if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n            var elem = context.getElementById(id);\n            return elem ? [elem] : [];\n          }\n        };\n      } else {\n        Expr.filter[\"ID\"] = function (id) {\n          var attrId = id.replace(runescape, funescape);\n          return function (elem) {\n            var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n            return node && node.value === attrId;\n          };\n        }; // Support: IE 6 - 7 only\n        // getElementById is not reliable as a find shortcut\n\n\n        Expr.find[\"ID\"] = function (id, context) {\n          if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n            var node,\n                i,\n                elems,\n                elem = context.getElementById(id);\n\n            if (elem) {\n              // Verify the id attribute\n              node = elem.getAttributeNode(\"id\");\n\n              if (node && node.value === id) {\n                return [elem];\n              } // Fall back on getElementsByName\n\n\n              elems = context.getElementsByName(id);\n              i = 0;\n\n              while (elem = elems[i++]) {\n                node = elem.getAttributeNode(\"id\");\n\n                if (node && node.value === id) {\n                  return [elem];\n                }\n              }\n            }\n\n            return [];\n          }\n        };\n      } // Tag\n\n\n      Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n        if (typeof context.getElementsByTagName !== \"undefined\") {\n          return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n        } else if (support.qsa) {\n          return context.querySelectorAll(tag);\n        }\n      } : function (tag, context) {\n        var elem,\n            tmp = [],\n            i = 0,\n            // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n        results = context.getElementsByTagName(tag); // Filter out possible comments\n\n        if (tag === \"*\") {\n          while (elem = results[i++]) {\n            if (elem.nodeType === 1) {\n              tmp.push(elem);\n            }\n          }\n\n          return tmp;\n        }\n\n        return results;\n      }; // Class\n\n      Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n        if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n          return context.getElementsByClassName(className);\n        }\n      };\n      /* QSA/matchesSelector\n      ---------------------------------------------------------------------- */\n      // QSA and matchesSelector support\n      // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n      rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n      // We allow this because of a bug in IE8/9 that throws an error\n      // whenever `document.activeElement` is accessed on an iframe\n      // So, we allow :focus to pass through QSA all the time to avoid the IE error\n      // See https://bugs.jquery.com/ticket/13378\n\n      rbuggyQSA = [];\n\n      if (support.qsa = rnative.test(document.querySelectorAll)) {\n        // Build QSA regex\n        // Regex strategy adopted from Diego Perini\n        assert(function (el) {\n          var input; // Select is set to empty string on purpose\n          // This is to test IE's treatment of not explicitly\n          // setting a boolean content attribute,\n          // since its presence should be enough\n          // https://bugs.jquery.com/ticket/12359\n\n          docElem.appendChild(el).innerHTML = \"<a id='\" + expando + \"'></a>\" + \"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" + \"<option selected=''></option></select>\"; // Support: IE8, Opera 11-12.16\n          // Nothing should be selected when empty strings follow ^= or $= or *=\n          // The test attribute must be unknown in Opera but \"safe\" for WinRT\n          // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n          if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n            rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n          } // Support: IE8\n          // Boolean attributes and \"value\" are not treated correctly\n\n\n          if (!el.querySelectorAll(\"[selected]\").length) {\n            rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n          } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n          if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n            rbuggyQSA.push(\"~=\");\n          } // Support: IE 11+, Edge 15 - 18+\n          // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n          // Adding a temporary attribute to the document before the selection works\n          // around the issue.\n          // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n          input = document.createElement(\"input\");\n          input.setAttribute(\"name\", \"\");\n          el.appendChild(input);\n\n          if (!el.querySelectorAll(\"[name='']\").length) {\n            rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n          } // Webkit/Opera - :checked should return selected option elements\n          // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n          // IE8 throws error here and will not see later tests\n\n\n          if (!el.querySelectorAll(\":checked\").length) {\n            rbuggyQSA.push(\":checked\");\n          } // Support: Safari 8+, iOS 8+\n          // https://bugs.webkit.org/show_bug.cgi?id=136851\n          // In-page `selector#id sibling-combinator selector` fails\n\n\n          if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n            rbuggyQSA.push(\".#.+[+~]\");\n          } // Support: Firefox <=3.6 - 5 only\n          // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n          el.querySelectorAll(\"\\\\\\f\");\n          rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n        });\n        assert(function (el) {\n          el.innerHTML = \"<a href='' disabled='disabled'></a>\" + \"<select disabled='disabled'><option/></select>\"; // Support: Windows 8 Native Apps\n          // The type and name attributes are restricted during .innerHTML assignment\n\n          var input = document.createElement(\"input\");\n          input.setAttribute(\"type\", \"hidden\");\n          el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n          // Enforce case-sensitivity of name attribute\n\n          if (el.querySelectorAll(\"[name=d]\").length) {\n            rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n          } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n          // IE8 throws error here and will not see later tests\n\n\n          if (el.querySelectorAll(\":enabled\").length !== 2) {\n            rbuggyQSA.push(\":enabled\", \":disabled\");\n          } // Support: IE9-11+\n          // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n          docElem.appendChild(el).disabled = true;\n\n          if (el.querySelectorAll(\":disabled\").length !== 2) {\n            rbuggyQSA.push(\":enabled\", \":disabled\");\n          } // Support: Opera 10 - 11 only\n          // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n          el.querySelectorAll(\"*,:x\");\n          rbuggyQSA.push(\",.*:\");\n        });\n      }\n\n      if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n        assert(function (el) {\n          // Check to see if it's possible to do matchesSelector\n          // on a disconnected node (IE 9)\n          support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n          // Gecko does not error, returns false instead\n\n          matches.call(el, \"[s!='']:x\");\n          rbuggyMatches.push(\"!=\", pseudos);\n        });\n      }\n\n      if (!support.cssSupportsSelector) {\n        // Support: Chrome 105+, Safari 15.4+\n        // `:has()` uses a forgiving selector list as an argument so our regular\n        // `try-catch` mechanism fails to catch `:has()` with arguments not supported\n        // natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n        // we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n        // outside that we mark `:has` as buggy.\n        rbuggyQSA.push(\":has\");\n      }\n\n      rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n      rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n      /* Contains\n      ---------------------------------------------------------------------- */\n\n      hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n      // Purposefully self-exclusive\n      // As in, an element does not contain itself\n\n      contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n        // Support: IE <9 only\n        // IE doesn't have `contains` on `document` so we need to check for\n        // `documentElement` presence.\n        // We need to fall back to `a` when `documentElement` is missing\n        // as `ownerDocument` of elements within `<template/>` may have\n        // a null one - a default behavior of all modern browsers.\n        var adown = a.nodeType === 9 && a.documentElement || a,\n            bup = b && b.parentNode;\n        return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n      } : function (a, b) {\n        if (b) {\n          while (b = b.parentNode) {\n            if (b === a) {\n              return true;\n            }\n          }\n        }\n\n        return false;\n      };\n      /* Sorting\n      ---------------------------------------------------------------------- */\n      // Document order sorting\n\n      sortOrder = hasCompare ? function (a, b) {\n        // Flag for duplicate removal\n        if (a === b) {\n          hasDuplicate = true;\n          return 0;\n        } // Sort on method existence if only one input has compareDocumentPosition\n\n\n        var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n        if (compare) {\n          return compare;\n        } // Calculate position if both inputs belong to the same document\n        // Support: IE 11+, Edge 17 - 18+\n        // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n        // two documents; shallow comparisons work.\n        // eslint-disable-next-line eqeqeq\n\n\n        compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n        1; // Disconnected nodes\n\n        if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n          // Choose the first element that is related to our preferred document\n          // Support: IE 11+, Edge 17 - 18+\n          // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n          // two documents; shallow comparisons work.\n          // eslint-disable-next-line eqeqeq\n          if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n            return -1;\n          } // Support: IE 11+, Edge 17 - 18+\n          // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n          // two documents; shallow comparisons work.\n          // eslint-disable-next-line eqeqeq\n\n\n          if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n            return 1;\n          } // Maintain original order\n\n\n          return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n        }\n\n        return compare & 4 ? -1 : 1;\n      } : function (a, b) {\n        // Exit early if the nodes are identical\n        if (a === b) {\n          hasDuplicate = true;\n          return 0;\n        }\n\n        var cur,\n            i = 0,\n            aup = a.parentNode,\n            bup = b.parentNode,\n            ap = [a],\n            bp = [b]; // Parentless nodes are either documents or disconnected\n\n        if (!aup || !bup) {\n          // Support: IE 11+, Edge 17 - 18+\n          // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n          // two documents; shallow comparisons work.\n\n          /* eslint-disable eqeqeq */\n          return a == document ? -1 : b == document ? 1 :\n          /* eslint-enable eqeqeq */\n          aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n        } else if (aup === bup) {\n          return siblingCheck(a, b);\n        } // Otherwise we need full lists of their ancestors for comparison\n\n\n        cur = a;\n\n        while (cur = cur.parentNode) {\n          ap.unshift(cur);\n        }\n\n        cur = b;\n\n        while (cur = cur.parentNode) {\n          bp.unshift(cur);\n        } // Walk down the tree looking for a discrepancy\n\n\n        while (ap[i] === bp[i]) {\n          i++;\n        }\n\n        return i ? // Do a sibling check if the nodes have a common ancestor\n        siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n        // Support: IE 11+, Edge 17 - 18+\n        // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n        // two documents; shallow comparisons work.\n\n        /* eslint-disable eqeqeq */\n        ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n        /* eslint-enable eqeqeq */\n        0;\n      };\n      return document;\n    };\n\n    Sizzle.matches = function (expr, elements) {\n      return Sizzle(expr, null, null, elements);\n    };\n\n    Sizzle.matchesSelector = function (elem, expr) {\n      setDocument(elem);\n\n      if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n        try {\n          var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n          if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n          // fragment in IE 9\n          elem.document && elem.document.nodeType !== 11) {\n            return ret;\n          }\n        } catch (e) {\n          nonnativeSelectorCache(expr, true);\n        }\n      }\n\n      return Sizzle(expr, document, null, [elem]).length > 0;\n    };\n\n    Sizzle.contains = function (context, elem) {\n      // Set document vars if needed\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n      if ((context.ownerDocument || context) != document) {\n        setDocument(context);\n      }\n\n      return contains(context, elem);\n    };\n\n    Sizzle.attr = function (elem, name) {\n      // Set document vars if needed\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n      if ((elem.ownerDocument || elem) != document) {\n        setDocument(elem);\n      }\n\n      var fn = Expr.attrHandle[name.toLowerCase()],\n          // Don't get fooled by Object.prototype properties (jQuery #13807)\n      val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n      return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n    };\n\n    Sizzle.escape = function (sel) {\n      return (sel + \"\").replace(rcssescape, fcssescape);\n    };\n\n    Sizzle.error = function (msg) {\n      throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n    };\n    /**\n     * Document sorting and removing duplicates\n     * @param {ArrayLike} results\n     */\n\n\n    Sizzle.uniqueSort = function (results) {\n      var elem,\n          duplicates = [],\n          j = 0,\n          i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n      hasDuplicate = !support.detectDuplicates;\n      sortInput = !support.sortStable && results.slice(0);\n      results.sort(sortOrder);\n\n      if (hasDuplicate) {\n        while (elem = results[i++]) {\n          if (elem === results[i]) {\n            j = duplicates.push(i);\n          }\n        }\n\n        while (j--) {\n          results.splice(duplicates[j], 1);\n        }\n      } // Clear input after sorting to release objects\n      // See https://github.com/jquery/sizzle/pull/225\n\n\n      sortInput = null;\n      return results;\n    };\n    /**\n     * Utility function for retrieving the text value of an array of DOM nodes\n     * @param {Array|Element} elem\n     */\n\n\n    getText = Sizzle.getText = function (elem) {\n      var node,\n          ret = \"\",\n          i = 0,\n          nodeType = elem.nodeType;\n\n      if (!nodeType) {\n        // If no nodeType, this is expected to be an array\n        while (node = elem[i++]) {\n          // Do not traverse comment nodes\n          ret += getText(node);\n        }\n      } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n        // Use textContent for elements\n        // innerText usage removed for consistency of new lines (jQuery #11153)\n        if (typeof elem.textContent === \"string\") {\n          return elem.textContent;\n        } else {\n          // Traverse its children\n          for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n            ret += getText(elem);\n          }\n        }\n      } else if (nodeType === 3 || nodeType === 4) {\n        return elem.nodeValue;\n      } // Do not include comment or processing instruction nodes\n\n\n      return ret;\n    };\n\n    Expr = Sizzle.selectors = {\n      // Can be adjusted by the user\n      cacheLength: 50,\n      createPseudo: markFunction,\n      match: matchExpr,\n      attrHandle: {},\n      find: {},\n      relative: {\n        \">\": {\n          dir: \"parentNode\",\n          first: true\n        },\n        \" \": {\n          dir: \"parentNode\"\n        },\n        \"+\": {\n          dir: \"previousSibling\",\n          first: true\n        },\n        \"~\": {\n          dir: \"previousSibling\"\n        }\n      },\n      preFilter: {\n        \"ATTR\": function ATTR(match) {\n          match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n          match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n          if (match[2] === \"~=\") {\n            match[3] = \" \" + match[3] + \" \";\n          }\n\n          return match.slice(0, 4);\n        },\n        \"CHILD\": function CHILD(match) {\n          /* matches from matchExpr[\"CHILD\"]\n          \t1 type (only|nth|...)\n          \t2 what (child|of-type)\n          \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n          \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n          \t5 sign of xn-component\n          \t6 x of xn-component\n          \t7 sign of y-component\n          \t8 y of y-component\n          */\n          match[1] = match[1].toLowerCase();\n\n          if (match[1].slice(0, 3) === \"nth\") {\n            // nth-* requires argument\n            if (!match[3]) {\n              Sizzle.error(match[0]);\n            } // numeric x and y parameters for Expr.filter.CHILD\n            // remember that false/true cast respectively to 0/1\n\n\n            match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n            match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n          } else if (match[3]) {\n            Sizzle.error(match[0]);\n          }\n\n          return match;\n        },\n        \"PSEUDO\": function PSEUDO(match) {\n          var excess,\n              unquoted = !match[6] && match[2];\n\n          if (matchExpr[\"CHILD\"].test(match[0])) {\n            return null;\n          } // Accept quoted arguments as-is\n\n\n          if (match[3]) {\n            match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n          } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n          excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n          excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n            // excess is a negative index\n            match[0] = match[0].slice(0, excess);\n            match[2] = unquoted.slice(0, excess);\n          } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n          return match.slice(0, 3);\n        }\n      },\n      filter: {\n        \"TAG\": function TAG(nodeNameSelector) {\n          var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n          return nodeNameSelector === \"*\" ? function () {\n            return true;\n          } : function (elem) {\n            return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n          };\n        },\n        \"CLASS\": function CLASS(className) {\n          var pattern = classCache[className + \" \"];\n          return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n            return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n          });\n        },\n        \"ATTR\": function ATTR(name, operator, check) {\n          return function (elem) {\n            var result = Sizzle.attr(elem, name);\n\n            if (result == null) {\n              return operator === \"!=\";\n            }\n\n            if (!operator) {\n              return true;\n            }\n\n            result += \"\";\n            /* eslint-disable max-len */\n\n            return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n            /* eslint-enable max-len */\n          };\n        },\n        \"CHILD\": function CHILD(type, what, _argument, first, last) {\n          var simple = type.slice(0, 3) !== \"nth\",\n              forward = type.slice(-4) !== \"last\",\n              ofType = what === \"of-type\";\n          return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n          function (elem) {\n            return !!elem.parentNode;\n          } : function (elem, _context, xml) {\n            var cache,\n                uniqueCache,\n                outerCache,\n                node,\n                nodeIndex,\n                start,\n                dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n                parent = elem.parentNode,\n                name = ofType && elem.nodeName.toLowerCase(),\n                useCache = !xml && !ofType,\n                diff = false;\n\n            if (parent) {\n              // :(first|last|only)-(child|of-type)\n              if (simple) {\n                while (dir) {\n                  node = elem;\n\n                  while (node = node[dir]) {\n                    if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n                      return false;\n                    }\n                  } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n                  start = dir = type === \"only\" && !start && \"nextSibling\";\n                }\n\n                return true;\n              }\n\n              start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n              if (forward && useCache) {\n                // Seek `elem` from a previously-cached index\n                // ...in a gzip-friendly way\n                node = parent;\n                outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n                // Defend against cloned attroperties (jQuery gh-1709)\n\n                uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n                cache = uniqueCache[type] || [];\n                nodeIndex = cache[0] === dirruns && cache[1];\n                diff = nodeIndex && cache[2];\n                node = nodeIndex && parent.childNodes[nodeIndex];\n\n                while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n                diff = nodeIndex = 0) || start.pop()) {\n                  // When found, cache indexes on `parent` and break\n                  if (node.nodeType === 1 && ++diff && node === elem) {\n                    uniqueCache[type] = [dirruns, nodeIndex, diff];\n                    break;\n                  }\n                }\n              } else {\n                // Use previously-cached element index if available\n                if (useCache) {\n                  // ...in a gzip-friendly way\n                  node = elem;\n                  outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n                  // Defend against cloned attroperties (jQuery gh-1709)\n\n                  uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n                  cache = uniqueCache[type] || [];\n                  nodeIndex = cache[0] === dirruns && cache[1];\n                  diff = nodeIndex;\n                } // xml :nth-child(...)\n                // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n                if (diff === false) {\n                  // Use the same loop as above to seek `elem` from the start\n                  while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n                    if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n                      // Cache the index of each encountered element\n                      if (useCache) {\n                        outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n                        // Defend against cloned attroperties (jQuery gh-1709)\n\n                        uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n                        uniqueCache[type] = [dirruns, diff];\n                      }\n\n                      if (node === elem) {\n                        break;\n                      }\n                    }\n                  }\n                }\n              } // Incorporate the offset, then check against cycle size\n\n\n              diff -= last;\n              return diff === first || diff % first === 0 && diff / first >= 0;\n            }\n          };\n        },\n        \"PSEUDO\": function PSEUDO(pseudo, argument) {\n          // pseudo-class names are case-insensitive\n          // http://www.w3.org/TR/selectors/#pseudo-classes\n          // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n          // Remember that setFilters inherits from pseudos\n          var args,\n              fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n          // arguments are needed to create the filter function\n          // just as Sizzle does\n\n          if (fn[expando]) {\n            return fn(argument);\n          } // But maintain support for old signatures\n\n\n          if (fn.length > 1) {\n            args = [pseudo, pseudo, \"\", argument];\n            return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n              var idx,\n                  matched = fn(seed, argument),\n                  i = matched.length;\n\n              while (i--) {\n                idx = indexOf(seed, matched[i]);\n                seed[idx] = !(matches[idx] = matched[i]);\n              }\n            }) : function (elem) {\n              return fn(elem, 0, args);\n            };\n          }\n\n          return fn;\n        }\n      },\n      pseudos: {\n        // Potentially complex pseudos\n        \"not\": markFunction(function (selector) {\n          // Trim the selector passed to compile\n          // to avoid treating leading and trailing\n          // spaces as combinators\n          var input = [],\n              results = [],\n              matcher = compile(selector.replace(rtrim, \"$1\"));\n          return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n            var elem,\n                unmatched = matcher(seed, null, xml, []),\n                i = seed.length; // Match elements unmatched by `matcher`\n\n            while (i--) {\n              if (elem = unmatched[i]) {\n                seed[i] = !(matches[i] = elem);\n              }\n            }\n          }) : function (elem, _context, xml) {\n            input[0] = elem;\n            matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n            input[0] = null;\n            return !results.pop();\n          };\n        }),\n        \"has\": markFunction(function (selector) {\n          return function (elem) {\n            return Sizzle(selector, elem).length > 0;\n          };\n        }),\n        \"contains\": markFunction(function (text) {\n          text = text.replace(runescape, funescape);\n          return function (elem) {\n            return (elem.textContent || getText(elem)).indexOf(text) > -1;\n          };\n        }),\n        // \"Whether an element is represented by a :lang() selector\n        // is based solely on the element's language value\n        // being equal to the identifier C,\n        // or beginning with the identifier C immediately followed by \"-\".\n        // The matching of C against the element's language value is performed case-insensitively.\n        // The identifier C does not have to be a valid language name.\"\n        // http://www.w3.org/TR/selectors/#lang-pseudo\n        \"lang\": markFunction(function (lang) {\n          // lang value must be a valid identifier\n          if (!ridentifier.test(lang || \"\")) {\n            Sizzle.error(\"unsupported lang: \" + lang);\n          }\n\n          lang = lang.replace(runescape, funescape).toLowerCase();\n          return function (elem) {\n            var elemLang;\n\n            do {\n              if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n                elemLang = elemLang.toLowerCase();\n                return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n              }\n            } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n            return false;\n          };\n        }),\n        // Miscellaneous\n        \"target\": function target(elem) {\n          var hash = window.location && window.location.hash;\n          return hash && hash.slice(1) === elem.id;\n        },\n        \"root\": function root(elem) {\n          return elem === docElem;\n        },\n        \"focus\": function focus(elem) {\n          return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n        },\n        // Boolean properties\n        \"enabled\": createDisabledPseudo(false),\n        \"disabled\": createDisabledPseudo(true),\n        \"checked\": function checked(elem) {\n          // In CSS3, :checked should return both checked and selected elements\n          // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n          var nodeName = elem.nodeName.toLowerCase();\n          return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n        },\n        \"selected\": function selected(elem) {\n          // Accessing this property makes selected-by-default\n          // options in Safari work properly\n          if (elem.parentNode) {\n            // eslint-disable-next-line no-unused-expressions\n            elem.parentNode.selectedIndex;\n          }\n\n          return elem.selected === true;\n        },\n        // Contents\n        \"empty\": function empty(elem) {\n          // http://www.w3.org/TR/selectors/#empty-pseudo\n          // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n          //   but not by others (comment: 8; processing instruction: 7; etc.)\n          // nodeType < 6 works because attributes (2) do not appear as children\n          for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n            if (elem.nodeType < 6) {\n              return false;\n            }\n          }\n\n          return true;\n        },\n        \"parent\": function parent(elem) {\n          return !Expr.pseudos[\"empty\"](elem);\n        },\n        // Element/input types\n        \"header\": function header(elem) {\n          return rheader.test(elem.nodeName);\n        },\n        \"input\": function input(elem) {\n          return rinputs.test(elem.nodeName);\n        },\n        \"button\": function button(elem) {\n          var name = elem.nodeName.toLowerCase();\n          return name === \"input\" && elem.type === \"button\" || name === \"button\";\n        },\n        \"text\": function text(elem) {\n          var attr;\n          return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE <10 only\n          // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n          (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n        },\n        // Position-in-collection\n        \"first\": createPositionalPseudo(function () {\n          return [0];\n        }),\n        \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n          return [length - 1];\n        }),\n        \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n          return [argument < 0 ? argument + length : argument];\n        }),\n        \"even\": createPositionalPseudo(function (matchIndexes, length) {\n          var i = 0;\n\n          for (; i < length; i += 2) {\n            matchIndexes.push(i);\n          }\n\n          return matchIndexes;\n        }),\n        \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n          var i = 1;\n\n          for (; i < length; i += 2) {\n            matchIndexes.push(i);\n          }\n\n          return matchIndexes;\n        }),\n        \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n          var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n          for (; --i >= 0;) {\n            matchIndexes.push(i);\n          }\n\n          return matchIndexes;\n        }),\n        \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n          var i = argument < 0 ? argument + length : argument;\n\n          for (; ++i < length;) {\n            matchIndexes.push(i);\n          }\n\n          return matchIndexes;\n        })\n      }\n    };\n    Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n    for (i in {\n      radio: true,\n      checkbox: true,\n      file: true,\n      password: true,\n      image: true\n    }) {\n      Expr.pseudos[i] = createInputPseudo(i);\n    }\n\n    for (i in {\n      submit: true,\n      reset: true\n    }) {\n      Expr.pseudos[i] = createButtonPseudo(i);\n    } // Easy API for creating new setFilters\n\n\n    function setFilters() {}\n\n    setFilters.prototype = Expr.filters = Expr.pseudos;\n    Expr.setFilters = new setFilters();\n\n    tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n      var matched,\n          match,\n          tokens,\n          type,\n          soFar,\n          groups,\n          preFilters,\n          cached = tokenCache[selector + \" \"];\n\n      if (cached) {\n        return parseOnly ? 0 : cached.slice(0);\n      }\n\n      soFar = selector;\n      groups = [];\n      preFilters = Expr.preFilter;\n\n      while (soFar) {\n        // Comma and first run\n        if (!matched || (match = rcomma.exec(soFar))) {\n          if (match) {\n            // Don't consume trailing commas as valid\n            soFar = soFar.slice(match[0].length) || soFar;\n          }\n\n          groups.push(tokens = []);\n        }\n\n        matched = false; // Combinators\n\n        if (match = rcombinators.exec(soFar)) {\n          matched = match.shift();\n          tokens.push({\n            value: matched,\n            // Cast descendant combinators to space\n            type: match[0].replace(rtrim, \" \")\n          });\n          soFar = soFar.slice(matched.length);\n        } // Filters\n\n\n        for (type in Expr.filter) {\n          if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n            matched = match.shift();\n            tokens.push({\n              value: matched,\n              type: type,\n              matches: match\n            });\n            soFar = soFar.slice(matched.length);\n          }\n        }\n\n        if (!matched) {\n          break;\n        }\n      } // Return the length of the invalid excess\n      // if we're just parsing\n      // Otherwise, throw an error or return tokens\n\n\n      return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n      tokenCache(selector, groups).slice(0);\n    };\n\n    function toSelector(tokens) {\n      var i = 0,\n          len = tokens.length,\n          selector = \"\";\n\n      for (; i < len; i++) {\n        selector += tokens[i].value;\n      }\n\n      return selector;\n    }\n\n    function addCombinator(matcher, combinator, base) {\n      var dir = combinator.dir,\n          skip = combinator.next,\n          key = skip || dir,\n          checkNonElements = base && key === \"parentNode\",\n          doneName = done++;\n      return combinator.first ? // Check against closest ancestor/preceding element\n      function (elem, context, xml) {\n        while (elem = elem[dir]) {\n          if (elem.nodeType === 1 || checkNonElements) {\n            return matcher(elem, context, xml);\n          }\n        }\n\n        return false;\n      } : // Check against all ancestor/preceding elements\n      function (elem, context, xml) {\n        var oldCache,\n            uniqueCache,\n            outerCache,\n            newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n        if (xml) {\n          while (elem = elem[dir]) {\n            if (elem.nodeType === 1 || checkNonElements) {\n              if (matcher(elem, context, xml)) {\n                return true;\n              }\n            }\n          }\n        } else {\n          while (elem = elem[dir]) {\n            if (elem.nodeType === 1 || checkNonElements) {\n              outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n              // Defend against cloned attroperties (jQuery gh-1709)\n\n              uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n              if (skip && skip === elem.nodeName.toLowerCase()) {\n                elem = elem[dir] || elem;\n              } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n                // Assign to newCache so results back-propagate to previous elements\n                return newCache[2] = oldCache[2];\n              } else {\n                // Reuse newcache so results back-propagate to previous elements\n                uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n                if (newCache[2] = matcher(elem, context, xml)) {\n                  return true;\n                }\n              }\n            }\n          }\n        }\n\n        return false;\n      };\n    }\n\n    function elementMatcher(matchers) {\n      return matchers.length > 1 ? function (elem, context, xml) {\n        var i = matchers.length;\n\n        while (i--) {\n          if (!matchers[i](elem, context, xml)) {\n            return false;\n          }\n        }\n\n        return true;\n      } : matchers[0];\n    }\n\n    function multipleContexts(selector, contexts, results) {\n      var i = 0,\n          len = contexts.length;\n\n      for (; i < len; i++) {\n        Sizzle(selector, contexts[i], results);\n      }\n\n      return results;\n    }\n\n    function condense(unmatched, map, filter, context, xml) {\n      var elem,\n          newUnmatched = [],\n          i = 0,\n          len = unmatched.length,\n          mapped = map != null;\n\n      for (; i < len; i++) {\n        if (elem = unmatched[i]) {\n          if (!filter || filter(elem, context, xml)) {\n            newUnmatched.push(elem);\n\n            if (mapped) {\n              map.push(i);\n            }\n          }\n        }\n      }\n\n      return newUnmatched;\n    }\n\n    function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n      if (postFilter && !postFilter[expando]) {\n        postFilter = setMatcher(postFilter);\n      }\n\n      if (postFinder && !postFinder[expando]) {\n        postFinder = setMatcher(postFinder, postSelector);\n      }\n\n      return markFunction(function (seed, results, context, xml) {\n        var temp,\n            i,\n            elem,\n            preMap = [],\n            postMap = [],\n            preexisting = results.length,\n            // Get initial elements from seed or context\n        elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n            // Prefilter to get matcher input, preserving a map for seed-results synchronization\n        matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n            matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n        postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n        [] : // ...otherwise use results directly\n        results : matcherIn; // Find primary matches\n\n        if (matcher) {\n          matcher(matcherIn, matcherOut, context, xml);\n        } // Apply postFilter\n\n\n        if (postFilter) {\n          temp = condense(matcherOut, postMap);\n          postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n          i = temp.length;\n\n          while (i--) {\n            if (elem = temp[i]) {\n              matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n            }\n          }\n        }\n\n        if (seed) {\n          if (postFinder || preFilter) {\n            if (postFinder) {\n              // Get the final matcherOut by condensing this intermediate into postFinder contexts\n              temp = [];\n              i = matcherOut.length;\n\n              while (i--) {\n                if (elem = matcherOut[i]) {\n                  // Restore matcherIn since elem is not yet a final match\n                  temp.push(matcherIn[i] = elem);\n                }\n              }\n\n              postFinder(null, matcherOut = [], temp, xml);\n            } // Move matched elements from seed to results to keep them synchronized\n\n\n            i = matcherOut.length;\n\n            while (i--) {\n              if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n                seed[temp] = !(results[temp] = elem);\n              }\n            }\n          } // Add elements to results, through postFinder if defined\n\n        } else {\n          matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n          if (postFinder) {\n            postFinder(null, results, matcherOut, xml);\n          } else {\n            push.apply(results, matcherOut);\n          }\n        }\n      });\n    }\n\n    function matcherFromTokens(tokens) {\n      var checkContext,\n          matcher,\n          j,\n          len = tokens.length,\n          leadingRelative = Expr.relative[tokens[0].type],\n          implicitRelative = leadingRelative || Expr.relative[\" \"],\n          i = leadingRelative ? 1 : 0,\n          // The foundational matcher ensures that elements are reachable from top-level context(s)\n      matchContext = addCombinator(function (elem) {\n        return elem === checkContext;\n      }, implicitRelative, true),\n          matchAnyContext = addCombinator(function (elem) {\n        return indexOf(checkContext, elem) > -1;\n      }, implicitRelative, true),\n          matchers = [function (elem, context, xml) {\n        var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n        checkContext = null;\n        return ret;\n      }];\n\n      for (; i < len; i++) {\n        if (matcher = Expr.relative[tokens[i].type]) {\n          matchers = [addCombinator(elementMatcher(matchers), matcher)];\n        } else {\n          matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n          if (matcher[expando]) {\n            // Find the next relative operator (if any) for proper handling\n            j = ++i;\n\n            for (; j < len; j++) {\n              if (Expr.relative[tokens[j].type]) {\n                break;\n              }\n            }\n\n            return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n            tokens.slice(0, i - 1).concat({\n              value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n            })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n          }\n\n          matchers.push(matcher);\n        }\n      }\n\n      return elementMatcher(matchers);\n    }\n\n    function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n      var bySet = setMatchers.length > 0,\n          byElement = elementMatchers.length > 0,\n          superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n        var elem,\n            j,\n            matcher,\n            matchedCount = 0,\n            i = \"0\",\n            unmatched = seed && [],\n            setMatched = [],\n            contextBackup = outermostContext,\n            // We must always have either seed elements or outermost context\n        elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n            // Use integer dirruns iff this is the outermost matcher\n        dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n            len = elems.length;\n\n        if (outermost) {\n          // Support: IE 11+, Edge 17 - 18+\n          // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n          // two documents; shallow comparisons work.\n          // eslint-disable-next-line eqeqeq\n          outermostContext = context == document || context || outermost;\n        } // Add elements passing elementMatchers directly to results\n        // Support: IE<9, Safari\n        // Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\n\n        for (; i !== len && (elem = elems[i]) != null; i++) {\n          if (byElement && elem) {\n            j = 0; // Support: IE 11+, Edge 17 - 18+\n            // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n            // two documents; shallow comparisons work.\n            // eslint-disable-next-line eqeqeq\n\n            if (!context && elem.ownerDocument != document) {\n              setDocument(elem);\n              xml = !documentIsHTML;\n            }\n\n            while (matcher = elementMatchers[j++]) {\n              if (matcher(elem, context || document, xml)) {\n                results.push(elem);\n                break;\n              }\n            }\n\n            if (outermost) {\n              dirruns = dirrunsUnique;\n            }\n          } // Track unmatched elements for set filters\n\n\n          if (bySet) {\n            // They will have gone through all possible matchers\n            if (elem = !matcher && elem) {\n              matchedCount--;\n            } // Lengthen the array for every element, matched or not\n\n\n            if (seed) {\n              unmatched.push(elem);\n            }\n          }\n        } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n        // makes the latter nonnegative.\n\n\n        matchedCount += i; // Apply set filters to unmatched elements\n        // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n        // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n        // no element matchers and no seed.\n        // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n        // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n        // numerically zero.\n\n        if (bySet && i !== matchedCount) {\n          j = 0;\n\n          while (matcher = setMatchers[j++]) {\n            matcher(unmatched, setMatched, context, xml);\n          }\n\n          if (seed) {\n            // Reintegrate element matches to eliminate the need for sorting\n            if (matchedCount > 0) {\n              while (i--) {\n                if (!(unmatched[i] || setMatched[i])) {\n                  setMatched[i] = pop.call(results);\n                }\n              }\n            } // Discard index placeholder values to get only actual matches\n\n\n            setMatched = condense(setMatched);\n          } // Add matches to results\n\n\n          push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n          if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n            Sizzle.uniqueSort(results);\n          }\n        } // Override manipulation of globals by nested matchers\n\n\n        if (outermost) {\n          dirruns = dirrunsUnique;\n          outermostContext = contextBackup;\n        }\n\n        return unmatched;\n      };\n\n      return bySet ? markFunction(superMatcher) : superMatcher;\n    }\n\n    compile = Sizzle.compile = function (selector, match\n    /* Internal Use Only */\n    ) {\n      var i,\n          setMatchers = [],\n          elementMatchers = [],\n          cached = compilerCache[selector + \" \"];\n\n      if (!cached) {\n        // Generate a function of recursive functions that can be used to check each element\n        if (!match) {\n          match = tokenize(selector);\n        }\n\n        i = match.length;\n\n        while (i--) {\n          cached = matcherFromTokens(match[i]);\n\n          if (cached[expando]) {\n            setMatchers.push(cached);\n          } else {\n            elementMatchers.push(cached);\n          }\n        } // Cache the compiled function\n\n\n        cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n        cached.selector = selector;\n      }\n\n      return cached;\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     */\n\n\n    select = Sizzle.select = function (selector, context, results, seed) {\n      var i,\n          tokens,\n          token,\n          type,\n          find,\n          compiled = typeof selector === \"function\" && selector,\n          match = !seed && tokenize(selector = compiled.selector || selector);\n      results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n      // (the latter of which guarantees us context)\n\n      if (match.length === 1) {\n        // Reduce context if the leading compound selector is an ID\n        tokens = match[0] = match[0].slice(0);\n\n        if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n          context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n          if (!context) {\n            return results; // Precompiled matchers will still verify ancestry, so step up a level\n          } else if (compiled) {\n            context = context.parentNode;\n          }\n\n          selector = selector.slice(tokens.shift().value.length);\n        } // Fetch a seed set for right-to-left matching\n\n\n        i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n        while (i--) {\n          token = tokens[i]; // Abort if we hit a combinator\n\n          if (Expr.relative[type = token.type]) {\n            break;\n          }\n\n          if (find = Expr.find[type]) {\n            // Search, expanding context for leading sibling combinators\n            if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n              // If seed is empty or no tokens remain, we can return early\n              tokens.splice(i, 1);\n              selector = seed.length && toSelector(tokens);\n\n              if (!selector) {\n                push.apply(results, seed);\n                return results;\n              }\n\n              break;\n            }\n          }\n        }\n      } // Compile and execute a filtering function if one is not provided\n      // Provide `match` to avoid retokenization if we modified the selector above\n\n\n      (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n      return results;\n    }; // One-time assignments\n    // Sort stability\n\n\n    support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n    // Always assume duplicates if they aren't passed to the comparison function\n\n    support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n    setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n    // Detached nodes confoundingly follow *each other*\n\n    support.sortDetached = assert(function (el) {\n      // Should return 1, but returns 4 (following)\n      return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n    }); // Support: IE<8\n    // Prevent attribute/property \"interpolation\"\n    // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n    if (!assert(function (el) {\n      el.innerHTML = \"<a href='#'></a>\";\n      return el.firstChild.getAttribute(\"href\") === \"#\";\n    })) {\n      addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n        if (!isXML) {\n          return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n        }\n      });\n    } // Support: IE<9\n    // Use defaultValue in place of getAttribute(\"value\")\n\n\n    if (!support.attributes || !assert(function (el) {\n      el.innerHTML = \"<input/>\";\n      el.firstChild.setAttribute(\"value\", \"\");\n      return el.firstChild.getAttribute(\"value\") === \"\";\n    })) {\n      addHandle(\"value\", function (elem, _name, isXML) {\n        if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n          return elem.defaultValue;\n        }\n      });\n    } // Support: IE<9\n    // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n    if (!assert(function (el) {\n      return el.getAttribute(\"disabled\") == null;\n    })) {\n      addHandle(booleans, function (elem, name, isXML) {\n        var val;\n\n        if (!isXML) {\n          return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n        }\n      });\n    }\n\n    return Sizzle;\n  }(window);\n\n  jQuery.find = Sizzle;\n  jQuery.expr = Sizzle.selectors; // Deprecated\n\n  jQuery.expr[\":\"] = jQuery.expr.pseudos;\n  jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n  jQuery.text = Sizzle.getText;\n  jQuery.isXMLDoc = Sizzle.isXML;\n  jQuery.contains = Sizzle.contains;\n  jQuery.escapeSelector = Sizzle.escape;\n\n  var dir = function dir(elem, _dir, until) {\n    var matched = [],\n        truncate = until !== undefined;\n\n    while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n      if (elem.nodeType === 1) {\n        if (truncate && jQuery(elem).is(until)) {\n          break;\n        }\n\n        matched.push(elem);\n      }\n    }\n\n    return matched;\n  };\n\n  var _siblings = function siblings(n, elem) {\n    var matched = [];\n\n    for (; n; n = n.nextSibling) {\n      if (n.nodeType === 1 && n !== elem) {\n        matched.push(n);\n      }\n    }\n\n    return matched;\n  };\n\n  var rneedsContext = jQuery.expr.match.needsContext;\n\n  function nodeName(elem, name) {\n    return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n  }\n\n  var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n  function winnow(elements, qualifier, not) {\n    if (isFunction(qualifier)) {\n      return jQuery.grep(elements, function (elem, i) {\n        return !!qualifier.call(elem, i, elem) !== not;\n      });\n    } // Single element\n\n\n    if (qualifier.nodeType) {\n      return jQuery.grep(elements, function (elem) {\n        return elem === qualifier !== not;\n      });\n    } // Arraylike of elements (jQuery, arguments, Array)\n\n\n    if (typeof qualifier !== \"string\") {\n      return jQuery.grep(elements, function (elem) {\n        return indexOf.call(qualifier, elem) > -1 !== not;\n      });\n    } // Filtered directly for both simple and complex selectors\n\n\n    return jQuery.filter(qualifier, elements, not);\n  }\n\n  jQuery.filter = function (expr, elems, not) {\n    var elem = elems[0];\n\n    if (not) {\n      expr = \":not(\" + expr + \")\";\n    }\n\n    if (elems.length === 1 && elem.nodeType === 1) {\n      return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n    }\n\n    return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n      return elem.nodeType === 1;\n    }));\n  };\n\n  jQuery.fn.extend({\n    find: function find(selector) {\n      var i,\n          ret,\n          len = this.length,\n          self = this;\n\n      if (typeof selector !== \"string\") {\n        return this.pushStack(jQuery(selector).filter(function () {\n          for (i = 0; i < len; i++) {\n            if (jQuery.contains(self[i], this)) {\n              return true;\n            }\n          }\n        }));\n      }\n\n      ret = this.pushStack([]);\n\n      for (i = 0; i < len; i++) {\n        jQuery.find(selector, self[i], ret);\n      }\n\n      return len > 1 ? jQuery.uniqueSort(ret) : ret;\n    },\n    filter: function filter(selector) {\n      return this.pushStack(winnow(this, selector || [], false));\n    },\n    not: function not(selector) {\n      return this.pushStack(winnow(this, selector || [], true));\n    },\n    is: function is(selector) {\n      return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n      // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n      typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n    }\n  }); // Initialize a jQuery object\n  // A central reference to the root jQuery(document)\n\n  var rootjQuery,\n      // A simple way to check for HTML strings\n  // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n  // Strict HTML recognition (trac-11290: must start with <)\n  // Shortcut simple #id case for speed\n  rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n      init = jQuery.fn.init = function (selector, context, root) {\n    var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n    if (!selector) {\n      return this;\n    } // Method init() accepts an alternate rootjQuery\n    // so migrate can support jQuery.sub (gh-2101)\n\n\n    root = root || rootjQuery; // Handle HTML strings\n\n    if (typeof selector === \"string\") {\n      if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n        // Assume that strings that start and end with <> are HTML and skip the regex check\n        match = [null, selector, null];\n      } else {\n        match = rquickExpr.exec(selector);\n      } // Match html or make sure no context is specified for #id\n\n\n      if (match && (match[1] || !context)) {\n        // HANDLE: $(html) -> $(array)\n        if (match[1]) {\n          context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n          // Intentionally let the error be thrown if parseHTML is not present\n\n          jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n          if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n            for (match in context) {\n              // Properties of context are called as methods if possible\n              if (isFunction(this[match])) {\n                this[match](context[match]); // ...and otherwise set as attributes\n              } else {\n                this.attr(match, context[match]);\n              }\n            }\n          }\n\n          return this; // HANDLE: $(#id)\n        } else {\n          elem = document.getElementById(match[2]);\n\n          if (elem) {\n            // Inject the element directly into the jQuery object\n            this[0] = elem;\n            this.length = 1;\n          }\n\n          return this;\n        } // HANDLE: $(expr, $(...))\n\n      } else if (!context || context.jquery) {\n        return (context || root).find(selector); // HANDLE: $(expr, context)\n        // (which is just equivalent to: $(context).find(expr)\n      } else {\n        return this.constructor(context).find(selector);\n      } // HANDLE: $(DOMElement)\n\n    } else if (selector.nodeType) {\n      this[0] = selector;\n      this.length = 1;\n      return this; // HANDLE: $(function)\n      // Shortcut for document ready\n    } else if (isFunction(selector)) {\n      return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n      selector(jQuery);\n    }\n\n    return jQuery.makeArray(selector, this);\n  }; // Give the init function the jQuery prototype for later instantiation\n\n\n  init.prototype = jQuery.fn; // Initialize central reference\n\n  rootjQuery = jQuery(document);\n  var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n      // Methods guaranteed to produce a unique set when starting from a unique set\n  guaranteedUnique = {\n    children: true,\n    contents: true,\n    next: true,\n    prev: true\n  };\n  jQuery.fn.extend({\n    has: function has(target) {\n      var targets = jQuery(target, this),\n          l = targets.length;\n      return this.filter(function () {\n        var i = 0;\n\n        for (; i < l; i++) {\n          if (jQuery.contains(this, targets[i])) {\n            return true;\n          }\n        }\n      });\n    },\n    closest: function closest(selectors, context) {\n      var cur,\n          i = 0,\n          l = this.length,\n          matched = [],\n          targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n      if (!rneedsContext.test(selectors)) {\n        for (; i < l; i++) {\n          for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n            // Always skip document fragments\n            if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n            cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n              matched.push(cur);\n              break;\n            }\n          }\n        }\n      }\n\n      return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n    },\n    // Determine the position of an element within the set\n    index: function index(elem) {\n      // No argument, return index in parent\n      if (!elem) {\n        return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n      } // Index in selector\n\n\n      if (typeof elem === \"string\") {\n        return indexOf.call(jQuery(elem), this[0]);\n      } // Locate the position of the desired element\n\n\n      return indexOf.call(this, // If it receives a jQuery object, the first element is used\n      elem.jquery ? elem[0] : elem);\n    },\n    add: function add(selector, context) {\n      return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n    },\n    addBack: function addBack(selector) {\n      return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n    }\n  });\n\n  function sibling(cur, dir) {\n    while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n    return cur;\n  }\n\n  jQuery.each({\n    parent: function parent(elem) {\n      var parent = elem.parentNode;\n      return parent && parent.nodeType !== 11 ? parent : null;\n    },\n    parents: function parents(elem) {\n      return dir(elem, \"parentNode\");\n    },\n    parentsUntil: function parentsUntil(elem, _i, until) {\n      return dir(elem, \"parentNode\", until);\n    },\n    next: function next(elem) {\n      return sibling(elem, \"nextSibling\");\n    },\n    prev: function prev(elem) {\n      return sibling(elem, \"previousSibling\");\n    },\n    nextAll: function nextAll(elem) {\n      return dir(elem, \"nextSibling\");\n    },\n    prevAll: function prevAll(elem) {\n      return dir(elem, \"previousSibling\");\n    },\n    nextUntil: function nextUntil(elem, _i, until) {\n      return dir(elem, \"nextSibling\", until);\n    },\n    prevUntil: function prevUntil(elem, _i, until) {\n      return dir(elem, \"previousSibling\", until);\n    },\n    siblings: function siblings(elem) {\n      return _siblings((elem.parentNode || {}).firstChild, elem);\n    },\n    children: function children(elem) {\n      return _siblings(elem.firstChild);\n    },\n    contents: function contents(elem) {\n      if (elem.contentDocument != null && // Support: IE 11+\n      // <object> elements with no `data` attribute has an object\n      // `contentDocument` with a `null` prototype.\n      getProto(elem.contentDocument)) {\n        return elem.contentDocument;\n      } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n      // Treat the template element as a regular one in browsers that\n      // don't support it.\n\n\n      if (nodeName(elem, \"template\")) {\n        elem = elem.content || elem;\n      }\n\n      return jQuery.merge([], elem.childNodes);\n    }\n  }, function (name, fn) {\n    jQuery.fn[name] = function (until, selector) {\n      var matched = jQuery.map(this, fn, until);\n\n      if (name.slice(-5) !== \"Until\") {\n        selector = until;\n      }\n\n      if (selector && typeof selector === \"string\") {\n        matched = jQuery.filter(selector, matched);\n      }\n\n      if (this.length > 1) {\n        // Remove duplicates\n        if (!guaranteedUnique[name]) {\n          jQuery.uniqueSort(matched);\n        } // Reverse order for parents* and prev-derivatives\n\n\n        if (rparentsprev.test(name)) {\n          matched.reverse();\n        }\n      }\n\n      return this.pushStack(matched);\n    };\n  });\n  var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n  function createOptions(options) {\n    var object = {};\n    jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n      object[flag] = true;\n    });\n    return object;\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   */\n\n\n  jQuery.Callbacks = function (options) {\n    // Convert options from String-formatted to Object-formatted if needed\n    // (we check in cache first)\n    options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n    var // Flag to know if list is currently firing\n    firing,\n        // Last fire value for non-forgettable lists\n    memory,\n        // Flag to know if list was already fired\n    _fired,\n        // Flag to prevent firing\n    _locked,\n        // Actual callback list\n    list = [],\n        // Queue of execution data for repeatable lists\n    queue = [],\n        // Index of currently firing callback (modified by add/remove as needed)\n    firingIndex = -1,\n        // Fire callbacks\n    fire = function fire() {\n      // Enforce single-firing\n      _locked = _locked || options.once; // Execute callbacks for all pending executions,\n      // respecting firingIndex overrides and runtime changes\n\n      _fired = firing = true;\n\n      for (; queue.length; firingIndex = -1) {\n        memory = queue.shift();\n\n        while (++firingIndex < list.length) {\n          // Run callback and check for early termination\n          if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n            // Jump to end and forget the data so .add doesn't re-fire\n            firingIndex = list.length;\n            memory = false;\n          }\n        }\n      } // Forget the data if we're done with it\n\n\n      if (!options.memory) {\n        memory = false;\n      }\n\n      firing = false; // Clean up if we're done firing for good\n\n      if (_locked) {\n        // Keep an empty list if we have data for future add calls\n        if (memory) {\n          list = []; // Otherwise, this object is spent\n        } else {\n          list = \"\";\n        }\n      }\n    },\n        // Actual Callbacks object\n    self = {\n      // Add a callback or a collection of callbacks to the list\n      add: function add() {\n        if (list) {\n          // If we have memory from a past run, we should fire after adding\n          if (memory && !firing) {\n            firingIndex = list.length - 1;\n            queue.push(memory);\n          }\n\n          (function add(args) {\n            jQuery.each(args, function (_, arg) {\n              if (isFunction(arg)) {\n                if (!options.unique || !self.has(arg)) {\n                  list.push(arg);\n                }\n              } else if (arg && arg.length && toType(arg) !== \"string\") {\n                // Inspect recursively\n                add(arg);\n              }\n            });\n          })(arguments);\n\n          if (memory && !firing) {\n            fire();\n          }\n        }\n\n        return this;\n      },\n      // Remove a callback from the list\n      remove: function remove() {\n        jQuery.each(arguments, function (_, arg) {\n          var index;\n\n          while ((index = jQuery.inArray(arg, list, index)) > -1) {\n            list.splice(index, 1); // Handle firing indexes\n\n            if (index <= firingIndex) {\n              firingIndex--;\n            }\n          }\n        });\n        return this;\n      },\n      // Check if a given callback is in the list.\n      // If no argument is given, return whether or not list has callbacks attached.\n      has: function has(fn) {\n        return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n      },\n      // Remove all callbacks from the list\n      empty: function empty() {\n        if (list) {\n          list = [];\n        }\n\n        return this;\n      },\n      // Disable .fire and .add\n      // Abort any current/pending executions\n      // Clear all callbacks and values\n      disable: function disable() {\n        _locked = queue = [];\n        list = memory = \"\";\n        return this;\n      },\n      disabled: function disabled() {\n        return !list;\n      },\n      // Disable .fire\n      // Also disable .add unless we have memory (since it would have no effect)\n      // Abort any pending executions\n      lock: function lock() {\n        _locked = queue = [];\n\n        if (!memory && !firing) {\n          list = memory = \"\";\n        }\n\n        return this;\n      },\n      locked: function locked() {\n        return !!_locked;\n      },\n      // Call all callbacks with the given context and arguments\n      fireWith: function fireWith(context, args) {\n        if (!_locked) {\n          args = args || [];\n          args = [context, args.slice ? args.slice() : args];\n          queue.push(args);\n\n          if (!firing) {\n            fire();\n          }\n        }\n\n        return this;\n      },\n      // Call all the callbacks with the given arguments\n      fire: function fire() {\n        self.fireWith(this, arguments);\n        return this;\n      },\n      // To know if the callbacks have already been called at least once\n      fired: function fired() {\n        return !!_fired;\n      }\n    };\n\n    return self;\n  };\n\n  function Identity(v) {\n    return v;\n  }\n\n  function Thrower(ex) {\n    throw ex;\n  }\n\n  function adoptValue(value, resolve, reject, noValue) {\n    var method;\n\n    try {\n      // Check for promise aspect first to privilege synchronous behavior\n      if (value && isFunction(method = value.promise)) {\n        method.call(value).done(resolve).fail(reject); // Other thenables\n      } else if (value && isFunction(method = value.then)) {\n        method.call(value, resolve, reject); // Other non-thenables\n      } else {\n        // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n        // * false: [ value ].slice( 0 ) => resolve( value )\n        // * true: [ value ].slice( 1 ) => resolve()\n        resolve.apply(undefined, [value].slice(noValue));\n      } // For Promises/A+, convert exceptions into rejections\n      // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n      // Deferred#then to conditionally suppress rejection.\n\n    } catch (value) {\n      // Support: Android 4.0 only\n      // Strict mode functions invoked without .call/.apply get global-object context\n      reject.apply(undefined, [value]);\n    }\n  }\n\n  jQuery.extend({\n    Deferred: function Deferred(func) {\n      var tuples = [// action, add listener, callbacks,\n      // ... .then handlers, argument index, [final state]\n      [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n          _state = \"pending\",\n          _promise = {\n        state: function state() {\n          return _state;\n        },\n        always: function always() {\n          deferred.done(arguments).fail(arguments);\n          return this;\n        },\n        \"catch\": function _catch(fn) {\n          return _promise.then(null, fn);\n        },\n        // Keep pipe for back-compat\n        pipe: function pipe()\n        /* fnDone, fnFail, fnProgress */\n        {\n          var fns = arguments;\n          return jQuery.Deferred(function (newDefer) {\n            jQuery.each(tuples, function (_i, tuple) {\n              // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n              var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n              // deferred.done(function() { bind to newDefer or newDefer.resolve })\n              // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n              deferred[tuple[1]](function () {\n                var returned = fn && fn.apply(this, arguments);\n\n                if (returned && isFunction(returned.promise)) {\n                  returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n                } else {\n                  newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n                }\n              });\n            });\n            fns = null;\n          }).promise();\n        },\n        then: function then(onFulfilled, onRejected, onProgress) {\n          var maxDepth = 0;\n\n          function resolve(depth, deferred, handler, special) {\n            return function () {\n              var that = this,\n                  args = arguments,\n                  mightThrow = function mightThrow() {\n                var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n                // https://promisesaplus.com/#point-59\n                // Ignore double-resolution attempts\n\n                if (depth < maxDepth) {\n                  return;\n                }\n\n                returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n                // https://promisesaplus.com/#point-48\n\n                if (returned === deferred.promise()) {\n                  throw new TypeError(\"Thenable self-resolution\");\n                } // Support: Promises/A+ sections 2.3.3.1, 3.5\n                // https://promisesaplus.com/#point-54\n                // https://promisesaplus.com/#point-75\n                // Retrieve `then` only once\n\n\n                then = returned && ( // Support: Promises/A+ section 2.3.4\n                // https://promisesaplus.com/#point-64\n                // Only check objects and functions for thenability\n                _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n                if (isFunction(then)) {\n                  // Special processors (notify) just wait for resolution\n                  if (special) {\n                    then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n                  } else {\n                    // ...and disregard older resolution values\n                    maxDepth++;\n                    then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n                  } // Handle all other returned values\n\n                } else {\n                  // Only substitute handlers pass on context\n                  // and multiple values (non-spec behavior)\n                  if (handler !== Identity) {\n                    that = undefined;\n                    args = [returned];\n                  } // Process the value(s)\n                  // Default process is resolve\n\n\n                  (special || deferred.resolveWith)(that, args);\n                }\n              },\n                  // Only normal processors (resolve) catch and reject exceptions\n              process = special ? mightThrow : function () {\n                try {\n                  mightThrow();\n                } catch (e) {\n                  if (jQuery.Deferred.exceptionHook) {\n                    jQuery.Deferred.exceptionHook(e, process.stackTrace);\n                  } // Support: Promises/A+ section 2.3.3.3.4.1\n                  // https://promisesaplus.com/#point-61\n                  // Ignore post-resolution exceptions\n\n\n                  if (depth + 1 >= maxDepth) {\n                    // Only substitute handlers pass on context\n                    // and multiple values (non-spec behavior)\n                    if (handler !== Thrower) {\n                      that = undefined;\n                      args = [e];\n                    }\n\n                    deferred.rejectWith(that, args);\n                  }\n                }\n              }; // Support: Promises/A+ section 2.3.3.3.1\n              // https://promisesaplus.com/#point-57\n              // Re-resolve promises immediately to dodge false rejection from\n              // subsequent errors\n\n\n              if (depth) {\n                process();\n              } else {\n                // Call an optional hook to record the stack, in case of exception\n                // since it's otherwise lost when execution goes async\n                if (jQuery.Deferred.getStackHook) {\n                  process.stackTrace = jQuery.Deferred.getStackHook();\n                }\n\n                window.setTimeout(process);\n              }\n            };\n          }\n\n          return jQuery.Deferred(function (newDefer) {\n            // progress_handlers.add( ... )\n            tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n            tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n            tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n          }).promise();\n        },\n        // Get a promise for this deferred\n        // If obj is provided, the promise aspect is added to the object\n        promise: function promise(obj) {\n          return obj != null ? jQuery.extend(obj, _promise) : _promise;\n        }\n      },\n          deferred = {}; // Add list-specific methods\n\n      jQuery.each(tuples, function (i, tuple) {\n        var list = tuple[2],\n            stateString = tuple[5]; // promise.progress = list.add\n        // promise.done = list.add\n        // promise.fail = list.add\n\n        _promise[tuple[1]] = list.add; // Handle state\n\n        if (stateString) {\n          list.add(function () {\n            // state = \"resolved\" (i.e., fulfilled)\n            // state = \"rejected\"\n            _state = stateString;\n          }, // rejected_callbacks.disable\n          // fulfilled_callbacks.disable\n          tuples[3 - i][2].disable, // rejected_handlers.disable\n          // fulfilled_handlers.disable\n          tuples[3 - i][3].disable, // progress_callbacks.lock\n          tuples[0][2].lock, // progress_handlers.lock\n          tuples[0][3].lock);\n        } // progress_handlers.fire\n        // fulfilled_handlers.fire\n        // rejected_handlers.fire\n\n\n        list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n        // deferred.resolve = function() { deferred.resolveWith(...) }\n        // deferred.reject = function() { deferred.rejectWith(...) }\n\n        deferred[tuple[0]] = function () {\n          deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n          return this;\n        }; // deferred.notifyWith = list.fireWith\n        // deferred.resolveWith = list.fireWith\n        // deferred.rejectWith = list.fireWith\n\n\n        deferred[tuple[0] + \"With\"] = list.fireWith;\n      }); // Make the deferred a promise\n\n      _promise.promise(deferred); // Call given func if any\n\n\n      if (func) {\n        func.call(deferred, deferred);\n      } // All done!\n\n\n      return deferred;\n    },\n    // Deferred helper\n    when: function when(singleValue) {\n      var // count of uncompleted subordinates\n      remaining = arguments.length,\n          // count of unprocessed arguments\n      i = remaining,\n          // subordinate fulfillment data\n      resolveContexts = Array(i),\n          resolveValues = _slice.call(arguments),\n          // the primary Deferred\n      primary = jQuery.Deferred(),\n          // subordinate callback factory\n      updateFunc = function updateFunc(i) {\n        return function (value) {\n          resolveContexts[i] = this;\n          resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n          if (! --remaining) {\n            primary.resolveWith(resolveContexts, resolveValues);\n          }\n        };\n      }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n      if (remaining <= 1) {\n        adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n        if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n          return primary.then();\n        }\n      } // Multiple arguments are aggregated like Promise.all array elements\n\n\n      while (i--) {\n        adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n      }\n\n      return primary.promise();\n    }\n  }); // These usually indicate a programmer mistake during development,\n  // warn about them ASAP rather than swallowing them by default.\n\n  var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n  jQuery.Deferred.exceptionHook = function (error, stack) {\n    // Support: IE 8 - 9 only\n    // Console exists when dev tools are open, which can happen at any time\n    if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n      window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n    }\n  };\n\n  jQuery.readyException = function (error) {\n    window.setTimeout(function () {\n      throw error;\n    });\n  }; // The deferred used on DOM ready\n\n\n  var readyList = jQuery.Deferred();\n\n  jQuery.fn.ready = function (fn) {\n    readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n    // happens at the time of error handling instead of callback\n    // registration.\n    .catch(function (error) {\n      jQuery.readyException(error);\n    });\n    return this;\n  };\n\n  jQuery.extend({\n    // Is the DOM ready to be used? Set to true once it occurs.\n    isReady: false,\n    // A counter to track how many items to wait for before\n    // the ready event fires. See trac-6781\n    readyWait: 1,\n    // Handle when the DOM is ready\n    ready: function ready(wait) {\n      // Abort if there are pending holds or we're already ready\n      if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n        return;\n      } // Remember that the DOM is ready\n\n\n      jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n      if (wait !== true && --jQuery.readyWait > 0) {\n        return;\n      } // If there are functions bound, to execute\n\n\n      readyList.resolveWith(document, [jQuery]);\n    }\n  });\n  jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n  function completed() {\n    document.removeEventListener(\"DOMContentLoaded\", completed);\n    window.removeEventListener(\"load\", completed);\n    jQuery.ready();\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\n\n\n  if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n    // Handle it asynchronously to allow scripts the opportunity to delay ready\n    window.setTimeout(jQuery.ready);\n  } else {\n    // Use the handy event callback\n    document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n    window.addEventListener(\"load\", completed);\n  } // Multifunctional method to get and set values of a collection\n  // The value/s can optionally be executed if it's a function\n\n\n  var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n    var i = 0,\n        len = elems.length,\n        bulk = key == null; // Sets many values\n\n    if (toType(key) === \"object\") {\n      chainable = true;\n\n      for (i in key) {\n        access(elems, fn, i, key[i], true, emptyGet, raw);\n      } // Sets one value\n\n    } else if (value !== undefined) {\n      chainable = true;\n\n      if (!isFunction(value)) {\n        raw = true;\n      }\n\n      if (bulk) {\n        // Bulk operations run against the entire set\n        if (raw) {\n          fn.call(elems, value);\n          fn = null; // ...except when executing function values\n        } else {\n          bulk = fn;\n\n          fn = function fn(elem, _key, value) {\n            return bulk.call(jQuery(elem), value);\n          };\n        }\n      }\n\n      if (fn) {\n        for (; i < len; i++) {\n          fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n        }\n      }\n    }\n\n    if (chainable) {\n      return elems;\n    } // Gets\n\n\n    if (bulk) {\n      return fn.call(elems);\n    }\n\n    return len ? fn(elems[0], key) : emptyGet;\n  }; // Matches dashed string for camelizing\n\n\n  var rmsPrefix = /^-ms-/,\n      rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n  function fcamelCase(_all, letter) {\n    return letter.toUpperCase();\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 (trac-9572)\n\n\n  function camelCase(string) {\n    return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n  }\n\n  var acceptData = function acceptData(owner) {\n    // Accepts only:\n    //  - Node\n    //    - Node.ELEMENT_NODE\n    //    - Node.DOCUMENT_NODE\n    //  - Object\n    //    - Any\n    return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n  };\n\n  function Data() {\n    this.expando = jQuery.expando + Data.uid++;\n  }\n\n  Data.uid = 1;\n  Data.prototype = {\n    cache: function cache(owner) {\n      // Check if the owner object already has a cache\n      var value = owner[this.expando]; // If not, create one\n\n      if (!value) {\n        value = {}; // We can accept data for non-element nodes in modern browsers,\n        // but we should not, see trac-8335.\n        // Always return an empty object.\n\n        if (acceptData(owner)) {\n          // If it is a node unlikely to be stringify-ed or looped over\n          // use plain assignment\n          if (owner.nodeType) {\n            owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n            // configurable must be true to allow the property to be\n            // deleted when data is removed\n          } else {\n            Object.defineProperty(owner, this.expando, {\n              value: value,\n              configurable: true\n            });\n          }\n        }\n      }\n\n      return value;\n    },\n    set: function set(owner, data, value) {\n      var prop,\n          cache = this.cache(owner); // Handle: [ owner, key, value ] args\n      // Always use camelCase key (gh-2257)\n\n      if (typeof data === \"string\") {\n        cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n      } else {\n        // Copy the properties one-by-one to the cache object\n        for (prop in data) {\n          cache[camelCase(prop)] = data[prop];\n        }\n      }\n\n      return cache;\n    },\n    get: function get(owner, key) {\n      return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n      owner[this.expando] && owner[this.expando][camelCase(key)];\n    },\n    access: function access(owner, key, value) {\n      // In cases where either:\n      //\n      //   1. No key was specified\n      //   2. A string key was specified, but no value provided\n      //\n      // Take the \"read\" path and allow the get method to determine\n      // which value to return, respectively either:\n      //\n      //   1. The entire cache object\n      //   2. The data stored at the key\n      //\n      if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n        return this.get(owner, key);\n      } // When the key is not a string, or both a key and value\n      // are specified, set or extend (existing objects) with either:\n      //\n      //   1. An object of properties\n      //   2. A key and value\n      //\n\n\n      this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n      // return the expected data based on which path was taken[*]\n\n      return value !== undefined ? value : key;\n    },\n    remove: function remove(owner, key) {\n      var i,\n          cache = owner[this.expando];\n\n      if (cache === undefined) {\n        return;\n      }\n\n      if (key !== undefined) {\n        // Support array or space separated string of keys\n        if (Array.isArray(key)) {\n          // If key is an array of keys...\n          // We always set camelCase keys, so remove that.\n          key = key.map(camelCase);\n        } else {\n          key = camelCase(key); // If a key with the spaces exists, use it.\n          // Otherwise, create an array by matching non-whitespace\n\n          key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n        }\n\n        i = key.length;\n\n        while (i--) {\n          delete cache[key[i]];\n        }\n      } // Remove the expando if there's no more data\n\n\n      if (key === undefined || jQuery.isEmptyObject(cache)) {\n        // Support: Chrome <=35 - 45\n        // Webkit & Blink performance suffers when deleting properties\n        // from DOM nodes, so set to undefined instead\n        // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n        if (owner.nodeType) {\n          owner[this.expando] = undefined;\n        } else {\n          delete owner[this.expando];\n        }\n      }\n    },\n    hasData: function hasData(owner) {\n      var cache = owner[this.expando];\n      return cache !== undefined && !jQuery.isEmptyObject(cache);\n    }\n  };\n  var dataPriv = new Data();\n  var dataUser = new Data(); //\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\n  var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n      rmultiDash = /[A-Z]/g;\n\n  function getData(data) {\n    if (data === \"true\") {\n      return true;\n    }\n\n    if (data === \"false\") {\n      return false;\n    }\n\n    if (data === \"null\") {\n      return null;\n    } // Only convert to a number if it doesn't change the string\n\n\n    if (data === +data + \"\") {\n      return +data;\n    }\n\n    if (rbrace.test(data)) {\n      return JSON.parse(data);\n    }\n\n    return data;\n  }\n\n  function dataAttr(elem, key, data) {\n    var name; // If nothing was found internally, try to fetch any\n    // data from the HTML5 data-* attribute\n\n    if (data === undefined && elem.nodeType === 1) {\n      name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n      data = elem.getAttribute(name);\n\n      if (typeof data === \"string\") {\n        try {\n          data = getData(data);\n        } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n        dataUser.set(elem, key, data);\n      } else {\n        data = undefined;\n      }\n    }\n\n    return data;\n  }\n\n  jQuery.extend({\n    hasData: function hasData(elem) {\n      return dataUser.hasData(elem) || dataPriv.hasData(elem);\n    },\n    data: function data(elem, name, _data) {\n      return dataUser.access(elem, name, _data);\n    },\n    removeData: function removeData(elem, name) {\n      dataUser.remove(elem, name);\n    },\n    // TODO: Now that all calls to _data and _removeData have been replaced\n    // with direct calls to dataPriv methods, these can be deprecated.\n    _data: function _data(elem, name, data) {\n      return dataPriv.access(elem, name, data);\n    },\n    _removeData: function _removeData(elem, name) {\n      dataPriv.remove(elem, name);\n    }\n  });\n  jQuery.fn.extend({\n    data: function data(key, value) {\n      var i,\n          name,\n          data,\n          elem = this[0],\n          attrs = elem && elem.attributes; // Gets all values\n\n      if (key === undefined) {\n        if (this.length) {\n          data = dataUser.get(elem);\n\n          if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n            i = attrs.length;\n\n            while (i--) {\n              // Support: IE 11 only\n              // The attrs elements can be null (trac-14894)\n              if (attrs[i]) {\n                name = attrs[i].name;\n\n                if (name.indexOf(\"data-\") === 0) {\n                  name = camelCase(name.slice(5));\n                  dataAttr(elem, name, data[name]);\n                }\n              }\n            }\n\n            dataPriv.set(elem, \"hasDataAttrs\", true);\n          }\n        }\n\n        return data;\n      } // Sets multiple values\n\n\n      if (_typeof(key) === \"object\") {\n        return this.each(function () {\n          dataUser.set(this, key);\n        });\n      }\n\n      return access(this, function (value) {\n        var data; // The calling jQuery object (element matches) is not empty\n        // (and therefore has an element appears at this[ 0 ]) and the\n        // `value` parameter was not undefined. An empty jQuery object\n        // will result in `undefined` for elem = this[ 0 ] which will\n        // throw an exception if an attempt to read a data cache is made.\n\n        if (elem && value === undefined) {\n          // Attempt to get data from the cache\n          // The key will always be camelCased in Data\n          data = dataUser.get(elem, key);\n\n          if (data !== undefined) {\n            return data;\n          } // Attempt to \"discover\" the data in\n          // HTML5 custom data-* attrs\n\n\n          data = dataAttr(elem, key);\n\n          if (data !== undefined) {\n            return data;\n          } // We tried really hard, but the data doesn't exist.\n\n\n          return;\n        } // Set the data...\n\n\n        this.each(function () {\n          // We always store the camelCased key\n          dataUser.set(this, key, value);\n        });\n      }, null, value, arguments.length > 1, null, true);\n    },\n    removeData: function removeData(key) {\n      return this.each(function () {\n        dataUser.remove(this, key);\n      });\n    }\n  });\n  jQuery.extend({\n    queue: function queue(elem, type, data) {\n      var queue;\n\n      if (elem) {\n        type = (type || \"fx\") + \"queue\";\n        queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n        if (data) {\n          if (!queue || Array.isArray(data)) {\n            queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n          } else {\n            queue.push(data);\n          }\n        }\n\n        return queue || [];\n      }\n    },\n    dequeue: function dequeue(elem, type) {\n      type = type || \"fx\";\n\n      var queue = jQuery.queue(elem, type),\n          startLength = queue.length,\n          fn = queue.shift(),\n          hooks = jQuery._queueHooks(elem, type),\n          next = function next() {\n        jQuery.dequeue(elem, type);\n      }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n      if (fn === \"inprogress\") {\n        fn = queue.shift();\n        startLength--;\n      }\n\n      if (fn) {\n        // Add a progress sentinel to prevent the fx queue from being\n        // automatically dequeued\n        if (type === \"fx\") {\n          queue.unshift(\"inprogress\");\n        } // Clear up the last queue stop function\n\n\n        delete hooks.stop;\n        fn.call(elem, next, hooks);\n      }\n\n      if (!startLength && hooks) {\n        hooks.empty.fire();\n      }\n    },\n    // Not public - generate a queueHooks object, or return the current one\n    _queueHooks: function _queueHooks(elem, type) {\n      var key = type + \"queueHooks\";\n      return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n        empty: jQuery.Callbacks(\"once memory\").add(function () {\n          dataPriv.remove(elem, [type + \"queue\", key]);\n        })\n      });\n    }\n  });\n  jQuery.fn.extend({\n    queue: function queue(type, data) {\n      var setter = 2;\n\n      if (typeof type !== \"string\") {\n        data = type;\n        type = \"fx\";\n        setter--;\n      }\n\n      if (arguments.length < setter) {\n        return jQuery.queue(this[0], type);\n      }\n\n      return data === undefined ? this : this.each(function () {\n        var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n        jQuery._queueHooks(this, type);\n\n        if (type === \"fx\" && queue[0] !== \"inprogress\") {\n          jQuery.dequeue(this, type);\n        }\n      });\n    },\n    dequeue: function dequeue(type) {\n      return this.each(function () {\n        jQuery.dequeue(this, type);\n      });\n    },\n    clearQueue: function clearQueue(type) {\n      return this.queue(type || \"fx\", []);\n    },\n    // Get a promise resolved when queues of a certain type\n    // are emptied (fx is the type by default)\n    promise: function promise(type, obj) {\n      var tmp,\n          count = 1,\n          defer = jQuery.Deferred(),\n          elements = this,\n          i = this.length,\n          resolve = function resolve() {\n        if (! --count) {\n          defer.resolveWith(elements, [elements]);\n        }\n      };\n\n      if (typeof type !== \"string\") {\n        obj = type;\n        type = undefined;\n      }\n\n      type = type || \"fx\";\n\n      while (i--) {\n        tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n        if (tmp && tmp.empty) {\n          count++;\n          tmp.empty.add(resolve);\n        }\n      }\n\n      resolve();\n      return defer.promise(obj);\n    }\n  });\n  var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n  var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n  var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n  var documentElement = document.documentElement;\n\n  var isAttached = function isAttached(elem) {\n    return jQuery.contains(elem.ownerDocument, elem);\n  },\n      composed = {\n    composed: true\n  }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n  // Check attachment across shadow DOM boundaries when possible (gh-3504)\n  // Support: iOS 10.0-10.2 only\n  // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n  // leading to errors. We need to check for `getRootNode`.\n\n\n  if (documentElement.getRootNode) {\n    isAttached = function isAttached(elem) {\n      return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n    };\n  }\n\n  var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n    // isHiddenWithinTree might be called from jQuery#filter function;\n    // in that case, element will be second argument\n    elem = el || elem; // Inline style trumps all\n\n    return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n    // Support: Firefox <=43 - 45\n    // Disconnected elements can have computed display: none, so first confirm that elem is\n    // in the document.\n    isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n  };\n\n  function adjustCSS(elem, prop, valueParts, tween) {\n    var adjusted,\n        scale,\n        maxIterations = 20,\n        currentValue = tween ? function () {\n      return tween.cur();\n    } : function () {\n      return jQuery.css(elem, prop, \"\");\n    },\n        initial = currentValue(),\n        unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n        // Starting value computation is required for potential unit mismatches\n    initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n    if (initialInUnit && initialInUnit[3] !== unit) {\n      // Support: Firefox <=54\n      // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n      initial = initial / 2; // Trust units reported by jQuery.css\n\n      unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n      initialInUnit = +initial || 1;\n\n      while (maxIterations--) {\n        // Evaluate and update our best guess (doubling guesses that zero out).\n        // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n        jQuery.style(elem, prop, initialInUnit + unit);\n\n        if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n          maxIterations = 0;\n        }\n\n        initialInUnit = initialInUnit / scale;\n      }\n\n      initialInUnit = initialInUnit * 2;\n      jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n      valueParts = valueParts || [];\n    }\n\n    if (valueParts) {\n      initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n      adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n      if (tween) {\n        tween.unit = unit;\n        tween.start = initialInUnit;\n        tween.end = adjusted;\n      }\n    }\n\n    return adjusted;\n  }\n\n  var defaultDisplayMap = {};\n\n  function getDefaultDisplay(elem) {\n    var temp,\n        doc = elem.ownerDocument,\n        nodeName = elem.nodeName,\n        display = defaultDisplayMap[nodeName];\n\n    if (display) {\n      return display;\n    }\n\n    temp = doc.body.appendChild(doc.createElement(nodeName));\n    display = jQuery.css(temp, \"display\");\n    temp.parentNode.removeChild(temp);\n\n    if (display === \"none\") {\n      display = \"block\";\n    }\n\n    defaultDisplayMap[nodeName] = display;\n    return display;\n  }\n\n  function showHide(elements, show) {\n    var display,\n        elem,\n        values = [],\n        index = 0,\n        length = elements.length; // Determine new display value for elements that need to change\n\n    for (; index < length; index++) {\n      elem = elements[index];\n\n      if (!elem.style) {\n        continue;\n      }\n\n      display = elem.style.display;\n\n      if (show) {\n        // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n        // check is required in this first loop unless we have a nonempty display value (either\n        // inline or about-to-be-restored)\n        if (display === \"none\") {\n          values[index] = dataPriv.get(elem, \"display\") || null;\n\n          if (!values[index]) {\n            elem.style.display = \"\";\n          }\n        }\n\n        if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n          values[index] = getDefaultDisplay(elem);\n        }\n      } else {\n        if (display !== \"none\") {\n          values[index] = \"none\"; // Remember what we're overwriting\n\n          dataPriv.set(elem, \"display\", display);\n        }\n      }\n    } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n    for (index = 0; index < length; index++) {\n      if (values[index] != null) {\n        elements[index].style.display = values[index];\n      }\n    }\n\n    return elements;\n  }\n\n  jQuery.fn.extend({\n    show: function show() {\n      return showHide(this, true);\n    },\n    hide: function hide() {\n      return showHide(this);\n    },\n    toggle: function toggle(state) {\n      if (typeof state === \"boolean\") {\n        return state ? this.show() : this.hide();\n      }\n\n      return this.each(function () {\n        if (isHiddenWithinTree(this)) {\n          jQuery(this).show();\n        } else {\n          jQuery(this).hide();\n        }\n      });\n    }\n  });\n  var rcheckableType = /^(?:checkbox|radio)$/i;\n  var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n  var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n  (function () {\n    var fragment = document.createDocumentFragment(),\n        div = fragment.appendChild(document.createElement(\"div\")),\n        input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n    // Check state lost if the name is set (trac-11217)\n    // Support: Windows Web Apps (WWA)\n    // `name` and `type` must use .setAttribute for WWA (trac-14901)\n\n    input.setAttribute(\"type\", \"radio\");\n    input.setAttribute(\"checked\", \"checked\");\n    input.setAttribute(\"name\", \"t\");\n    div.appendChild(input); // Support: Android <=4.1 only\n    // Older WebKit doesn't clone checked state correctly in fragments\n\n    support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n    // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n    div.innerHTML = \"<textarea>x</textarea>\";\n    support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n    // IE <=9 replaces <option> tags with their contents when inserted outside of\n    // the select element.\n\n    div.innerHTML = \"<option></option>\";\n    support.option = !!div.lastChild;\n  })(); // We have to close these tags to support XHTML (trac-13200)\n\n\n  var wrapMap = {\n    // XHTML parsers do not magically insert elements in the\n    // same way that tag soup parsers do. So we cannot shorten\n    // this by omitting <tbody> or other required elements.\n    thead: [1, \"<table>\", \"</table>\"],\n    col: [2, \"<table><colgroup>\", \"</colgroup></table>\"],\n    tr: [2, \"<table><tbody>\", \"</tbody></table>\"],\n    td: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"],\n    _default: [0, \"\", \"\"]\n  };\n  wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n  wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n  if (!support.option) {\n    wrapMap.optgroup = wrapMap.option = [1, \"<select multiple='multiple'>\", \"</select>\"];\n  }\n\n  function getAll(context, tag) {\n    // Support: IE <=9 - 11 only\n    // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n    var ret;\n\n    if (typeof context.getElementsByTagName !== \"undefined\") {\n      ret = context.getElementsByTagName(tag || \"*\");\n    } else if (typeof context.querySelectorAll !== \"undefined\") {\n      ret = context.querySelectorAll(tag || \"*\");\n    } else {\n      ret = [];\n    }\n\n    if (tag === undefined || tag && nodeName(context, tag)) {\n      return jQuery.merge([context], ret);\n    }\n\n    return ret;\n  } // Mark scripts as having already been evaluated\n\n\n  function setGlobalEval(elems, refElements) {\n    var i = 0,\n        l = elems.length;\n\n    for (; i < l; i++) {\n      dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n    }\n  }\n\n  var rhtml = /<|&#?\\w+;/;\n\n  function buildFragment(elems, context, scripts, selection, ignored) {\n    var elem,\n        tmp,\n        tag,\n        wrap,\n        attached,\n        j,\n        fragment = context.createDocumentFragment(),\n        nodes = [],\n        i = 0,\n        l = elems.length;\n\n    for (; i < l; i++) {\n      elem = elems[i];\n\n      if (elem || elem === 0) {\n        // Add nodes directly\n        if (toType(elem) === \"object\") {\n          // Support: Android <=4.0 only, PhantomJS 1 only\n          // push.apply(_, arraylike) throws on ancient WebKit\n          jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n        } else if (!rhtml.test(elem)) {\n          nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n        } else {\n          tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n          tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n          wrap = wrapMap[tag] || wrapMap._default;\n          tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n          j = wrap[0];\n\n          while (j--) {\n            tmp = tmp.lastChild;\n          } // Support: Android <=4.0 only, PhantomJS 1 only\n          // push.apply(_, arraylike) throws on ancient WebKit\n\n\n          jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n          tmp = fragment.firstChild; // Ensure the created nodes are orphaned (trac-12392)\n\n          tmp.textContent = \"\";\n        }\n      }\n    } // Remove wrapper from fragment\n\n\n    fragment.textContent = \"\";\n    i = 0;\n\n    while (elem = nodes[i++]) {\n      // Skip elements already in the context collection (trac-4087)\n      if (selection && jQuery.inArray(elem, selection) > -1) {\n        if (ignored) {\n          ignored.push(elem);\n        }\n\n        continue;\n      }\n\n      attached = isAttached(elem); // Append to fragment\n\n      tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n      if (attached) {\n        setGlobalEval(tmp);\n      } // Capture executables\n\n\n      if (scripts) {\n        j = 0;\n\n        while (elem = tmp[j++]) {\n          if (rscriptType.test(elem.type || \"\")) {\n            scripts.push(elem);\n          }\n        }\n      }\n    }\n\n    return fragment;\n  }\n\n  var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n  function returnTrue() {\n    return true;\n  }\n\n  function returnFalse() {\n    return false;\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).\n\n\n  function expectSync(elem, type) {\n    return elem === safeActiveElement() === (type === \"focus\");\n  } // Support: IE <=9 only\n  // Accessing document.activeElement can throw unexpectedly\n  // https://bugs.jquery.com/ticket/13393\n\n\n  function safeActiveElement() {\n    try {\n      return document.activeElement;\n    } catch (err) {}\n  }\n\n  function _on(elem, types, selector, data, fn, one) {\n    var origFn, type; // Types can be a map of types/handlers\n\n    if (_typeof(types) === \"object\") {\n      // ( types-Object, selector, data )\n      if (typeof selector !== \"string\") {\n        // ( types-Object, data )\n        data = data || selector;\n        selector = undefined;\n      }\n\n      for (type in types) {\n        _on(elem, type, selector, data, types[type], one);\n      }\n\n      return elem;\n    }\n\n    if (data == null && fn == null) {\n      // ( types, fn )\n      fn = selector;\n      data = selector = undefined;\n    } else if (fn == null) {\n      if (typeof selector === \"string\") {\n        // ( types, selector, fn )\n        fn = data;\n        data = undefined;\n      } else {\n        // ( types, data, fn )\n        fn = data;\n        data = selector;\n        selector = undefined;\n      }\n    }\n\n    if (fn === false) {\n      fn = returnFalse;\n    } else if (!fn) {\n      return elem;\n    }\n\n    if (one === 1) {\n      origFn = fn;\n\n      fn = function fn(event) {\n        // Can use an empty set, since event contains the info\n        jQuery().off(event);\n        return origFn.apply(this, arguments);\n      }; // Use same guid so caller can remove using origFn\n\n\n      fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n    }\n\n    return elem.each(function () {\n      jQuery.event.add(this, types, fn, data, selector);\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   */\n\n\n  jQuery.event = {\n    global: {},\n    add: function add(elem, types, handler, data, selector) {\n      var handleObjIn,\n          eventHandle,\n          tmp,\n          events,\n          t,\n          handleObj,\n          special,\n          handlers,\n          type,\n          namespaces,\n          origType,\n          elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n      if (!acceptData(elem)) {\n        return;\n      } // Caller can pass in an object of custom data in lieu of the handler\n\n\n      if (handler.handler) {\n        handleObjIn = handler;\n        handler = handleObjIn.handler;\n        selector = handleObjIn.selector;\n      } // Ensure that invalid selectors throw exceptions at attach time\n      // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n      if (selector) {\n        jQuery.find.matchesSelector(documentElement, selector);\n      } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n      if (!handler.guid) {\n        handler.guid = jQuery.guid++;\n      } // Init the element's event structure and main handler, if this is the first\n\n\n      if (!(events = elemData.events)) {\n        events = elemData.events = Object.create(null);\n      }\n\n      if (!(eventHandle = elemData.handle)) {\n        eventHandle = elemData.handle = function (e) {\n          // Discard the second event of a jQuery.event.trigger() and\n          // when an event is called after a page has unloaded\n          return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n        };\n      } // Handle multiple events separated by a space\n\n\n      types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n      t = types.length;\n\n      while (t--) {\n        tmp = rtypenamespace.exec(types[t]) || [];\n        type = origType = tmp[1];\n        namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n        if (!type) {\n          continue;\n        } // If event changes its type, use the special event handlers for the changed type\n\n\n        special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n        type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n        special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n        handleObj = jQuery.extend({\n          type: type,\n          origType: origType,\n          data: data,\n          handler: handler,\n          guid: handler.guid,\n          selector: selector,\n          needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n          namespace: namespaces.join(\".\")\n        }, handleObjIn); // Init the event handler queue if we're the first\n\n        if (!(handlers = events[type])) {\n          handlers = events[type] = [];\n          handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n          if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n            if (elem.addEventListener) {\n              elem.addEventListener(type, eventHandle);\n            }\n          }\n        }\n\n        if (special.add) {\n          special.add.call(elem, handleObj);\n\n          if (!handleObj.handler.guid) {\n            handleObj.handler.guid = handler.guid;\n          }\n        } // Add to the element's handler list, delegates in front\n\n\n        if (selector) {\n          handlers.splice(handlers.delegateCount++, 0, handleObj);\n        } else {\n          handlers.push(handleObj);\n        } // Keep track of which events have ever been used, for event optimization\n\n\n        jQuery.event.global[type] = true;\n      }\n    },\n    // Detach an event or set of events from an element\n    remove: function remove(elem, types, handler, selector, mappedTypes) {\n      var j,\n          origCount,\n          tmp,\n          events,\n          t,\n          handleObj,\n          special,\n          handlers,\n          type,\n          namespaces,\n          origType,\n          elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n      if (!elemData || !(events = elemData.events)) {\n        return;\n      } // Once for each type.namespace in types; type may be omitted\n\n\n      types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n      t = types.length;\n\n      while (t--) {\n        tmp = rtypenamespace.exec(types[t]) || [];\n        type = origType = tmp[1];\n        namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n        if (!type) {\n          for (type in events) {\n            jQuery.event.remove(elem, type + types[t], handler, selector, true);\n          }\n\n          continue;\n        }\n\n        special = jQuery.event.special[type] || {};\n        type = (selector ? special.delegateType : special.bindType) || type;\n        handlers = events[type] || [];\n        tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n        origCount = j = handlers.length;\n\n        while (j--) {\n          handleObj = handlers[j];\n\n          if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n            handlers.splice(j, 1);\n\n            if (handleObj.selector) {\n              handlers.delegateCount--;\n            }\n\n            if (special.remove) {\n              special.remove.call(elem, handleObj);\n            }\n          }\n        } // Remove generic event handler if we removed something and no more handlers exist\n        // (avoids potential for endless recursion during removal of special event handlers)\n\n\n        if (origCount && !handlers.length) {\n          if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n            jQuery.removeEvent(elem, type, elemData.handle);\n          }\n\n          delete events[type];\n        }\n      } // Remove data and the expando if it's no longer used\n\n\n      if (jQuery.isEmptyObject(events)) {\n        dataPriv.remove(elem, \"handle events\");\n      }\n    },\n    dispatch: function dispatch(nativeEvent) {\n      var i,\n          j,\n          ret,\n          matched,\n          handleObj,\n          handlerQueue,\n          args = new Array(arguments.length),\n          // Make a writable jQuery.Event from the native event object\n      event = jQuery.event.fix(nativeEvent),\n          handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n          special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n      args[0] = event;\n\n      for (i = 1; i < arguments.length; i++) {\n        args[i] = arguments[i];\n      }\n\n      event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n      if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n        return;\n      } // Determine handlers\n\n\n      handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n      i = 0;\n\n      while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n        event.currentTarget = matched.elem;\n        j = 0;\n\n        while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n          // If the event is namespaced, then each handler is only invoked if it is\n          // specially universal or its namespaces are a superset of the event's.\n          if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n            event.handleObj = handleObj;\n            event.data = handleObj.data;\n            ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n            if (ret !== undefined) {\n              if ((event.result = ret) === false) {\n                event.preventDefault();\n                event.stopPropagation();\n              }\n            }\n          }\n        }\n      } // Call the postDispatch hook for the mapped type\n\n\n      if (special.postDispatch) {\n        special.postDispatch.call(this, event);\n      }\n\n      return event.result;\n    },\n    handlers: function handlers(event, _handlers) {\n      var i,\n          handleObj,\n          sel,\n          matchedHandlers,\n          matchedSelectors,\n          handlerQueue = [],\n          delegateCount = _handlers.delegateCount,\n          cur = event.target; // Find delegate handlers\n\n      if (delegateCount && // Support: IE <=9\n      // Black-hole SVG <use> instance trees (trac-13180)\n      cur.nodeType && // Support: Firefox <=42\n      // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n      // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n      // Support: IE 11 only\n      // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n      !(event.type === \"click\" && event.button >= 1)) {\n        for (; cur !== this; cur = cur.parentNode || this) {\n          // Don't check non-elements (trac-13208)\n          // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n          if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n            matchedHandlers = [];\n            matchedSelectors = {};\n\n            for (i = 0; i < delegateCount; i++) {\n              handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (trac-13203)\n\n              sel = handleObj.selector + \" \";\n\n              if (matchedSelectors[sel] === undefined) {\n                matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n              }\n\n              if (matchedSelectors[sel]) {\n                matchedHandlers.push(handleObj);\n              }\n            }\n\n            if (matchedHandlers.length) {\n              handlerQueue.push({\n                elem: cur,\n                handlers: matchedHandlers\n              });\n            }\n          }\n        }\n      } // Add the remaining (directly-bound) handlers\n\n\n      cur = this;\n\n      if (delegateCount < _handlers.length) {\n        handlerQueue.push({\n          elem: cur,\n          handlers: _handlers.slice(delegateCount)\n        });\n      }\n\n      return handlerQueue;\n    },\n    addProp: function addProp(name, hook) {\n      Object.defineProperty(jQuery.Event.prototype, name, {\n        enumerable: true,\n        configurable: true,\n        get: isFunction(hook) ? function () {\n          if (this.originalEvent) {\n            return hook(this.originalEvent);\n          }\n        } : function () {\n          if (this.originalEvent) {\n            return this.originalEvent[name];\n          }\n        },\n        set: function set(value) {\n          Object.defineProperty(this, name, {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: value\n          });\n        }\n      });\n    },\n    fix: function fix(originalEvent) {\n      return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n    },\n    special: {\n      load: {\n        // Prevent triggered image.load events from bubbling to window.load\n        noBubble: true\n      },\n      click: {\n        // Utilize native event to ensure correct state for checkable inputs\n        setup: function setup(data) {\n          // For mutual compressibility with _default, replace `this` access with a local var.\n          // `|| data` is dead code meant only to preserve the variable through minification.\n          var el = this || data; // Claim the first handler\n\n          if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n            // dataPriv.set( el, \"click\", ... )\n            leverageNative(el, \"click\", returnTrue);\n          } // Return false to allow normal processing in the caller\n\n\n          return false;\n        },\n        trigger: function trigger(data) {\n          // For mutual compressibility with _default, replace `this` access with a local var.\n          // `|| data` is dead code meant only to preserve the variable through minification.\n          var el = this || data; // Force setup before triggering a click\n\n          if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n            leverageNative(el, \"click\");\n          } // Return non-false to allow normal event-path propagation\n\n\n          return true;\n        },\n        // For cross-browser consistency, suppress native .click() on links\n        // Also prevent it if we're currently inside a leveraged native-event stack\n        _default: function _default(event) {\n          var target = event.target;\n          return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n        }\n      },\n      beforeunload: {\n        postDispatch: function postDispatch(event) {\n          // Support: Firefox 20+\n          // Firefox doesn't alert if the returnValue field is not set.\n          if (event.result !== undefined && event.originalEvent) {\n            event.originalEvent.returnValue = event.result;\n          }\n        }\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.\n\n  function leverageNative(el, type, expectSync) {\n    // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n    if (!expectSync) {\n      if (dataPriv.get(el, type) === undefined) {\n        jQuery.event.add(el, type, returnTrue);\n      }\n\n      return;\n    } // Register the controller as a special universal handler for all event namespaces\n\n\n    dataPriv.set(el, type, false);\n    jQuery.event.add(el, type, {\n      namespace: false,\n      handler: function handler(event) {\n        var notAsync,\n            result,\n            saved = dataPriv.get(this, type);\n\n        if (event.isTrigger & 1 && this[type]) {\n          // Interrupt processing of the outer synthetic .trigger()ed event\n          // Saved data should be false in such cases, but might be a leftover capture object\n          // from an async native handler (gh-4350)\n          if (!saved.length) {\n            // Store arguments for use when handling the inner native event\n            // There will always be at least one argument (an event object), so this array\n            // will not be confused with a leftover capture object.\n            saved = _slice.call(arguments);\n            dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n            // Support: IE <=9 - 11+\n            // focus() and blur() are asynchronous\n\n            notAsync = expectSync(this, type);\n            this[type]();\n            result = dataPriv.get(this, type);\n\n            if (saved !== result || notAsync) {\n              dataPriv.set(this, type, false);\n            } else {\n              result = {};\n            }\n\n            if (saved !== result) {\n              // Cancel the outer synthetic event\n              event.stopImmediatePropagation();\n              event.preventDefault(); // Support: Chrome 86+\n              // In Chrome, if an element having a focusout handler is blurred by\n              // clicking outside of it, it invokes the handler synchronously. If\n              // that handler calls `.remove()` on the element, the data is cleared,\n              // leaving `result` undefined. We need to guard against this.\n\n              return result && result.value;\n            } // If this is an inner synthetic event for an event with a bubbling surrogate\n            // (focus or blur), assume that the surrogate already propagated from triggering the\n            // native event and prevent that from happening again here.\n            // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n            // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n            // less bad than duplication.\n\n          } else if ((jQuery.event.special[type] || {}).delegateType) {\n            event.stopPropagation();\n          } // If this is a native event triggered above, everything is now in order\n          // Fire an inner synthetic event with the original arguments\n\n        } else if (saved.length) {\n          // ...and capture the result\n          dataPriv.set(this, type, {\n            value: jQuery.event.trigger( // Support: IE <=9 - 11+\n            // Extend with the prototype to reset the above stopImmediatePropagation()\n            jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n          }); // Abort handling of the native event\n\n          event.stopImmediatePropagation();\n        }\n      }\n    });\n  }\n\n  jQuery.removeEvent = function (elem, type, handle) {\n    // This \"if\" is needed for plain objects\n    if (elem.removeEventListener) {\n      elem.removeEventListener(type, handle);\n    }\n  };\n\n  jQuery.Event = function (src, props) {\n    // Allow instantiation without the 'new' keyword\n    if (!(this instanceof jQuery.Event)) {\n      return new jQuery.Event(src, props);\n    } // Event object\n\n\n    if (src && src.type) {\n      this.originalEvent = src;\n      this.type = src.type; // Events bubbling up the document may have been marked as prevented\n      // by a handler lower down the tree; reflect the correct value.\n\n      this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n      src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n      // Support: Safari <=6 - 7 only\n      // Target should not be a text node (trac-504, trac-13143)\n\n      this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n      this.currentTarget = src.currentTarget;\n      this.relatedTarget = src.relatedTarget; // Event type\n    } else {\n      this.type = src;\n    } // Put explicitly provided properties onto the event object\n\n\n    if (props) {\n      jQuery.extend(this, props);\n    } // Create a timestamp if incoming event doesn't have one\n\n\n    this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n    this[jQuery.expando] = true;\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\n\n\n  jQuery.Event.prototype = {\n    constructor: jQuery.Event,\n    isDefaultPrevented: returnFalse,\n    isPropagationStopped: returnFalse,\n    isImmediatePropagationStopped: returnFalse,\n    isSimulated: false,\n    preventDefault: function preventDefault() {\n      var e = this.originalEvent;\n      this.isDefaultPrevented = returnTrue;\n\n      if (e && !this.isSimulated) {\n        e.preventDefault();\n      }\n    },\n    stopPropagation: function stopPropagation() {\n      var e = this.originalEvent;\n      this.isPropagationStopped = returnTrue;\n\n      if (e && !this.isSimulated) {\n        e.stopPropagation();\n      }\n    },\n    stopImmediatePropagation: function stopImmediatePropagation() {\n      var e = this.originalEvent;\n      this.isImmediatePropagationStopped = returnTrue;\n\n      if (e && !this.isSimulated) {\n        e.stopImmediatePropagation();\n      }\n\n      this.stopPropagation();\n    }\n  }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n  jQuery.each({\n    altKey: true,\n    bubbles: true,\n    cancelable: true,\n    changedTouches: true,\n    ctrlKey: true,\n    detail: true,\n    eventPhase: true,\n    metaKey: true,\n    pageX: true,\n    pageY: true,\n    shiftKey: true,\n    view: true,\n    \"char\": true,\n    code: true,\n    charCode: true,\n    key: true,\n    keyCode: true,\n    button: true,\n    buttons: true,\n    clientX: true,\n    clientY: true,\n    offsetX: true,\n    offsetY: true,\n    pointerId: true,\n    pointerType: true,\n    screenX: true,\n    screenY: true,\n    targetTouches: true,\n    toElement: true,\n    touches: true,\n    which: true\n  }, jQuery.event.addProp);\n  jQuery.each({\n    focus: \"focusin\",\n    blur: \"focusout\"\n  }, function (type, delegateType) {\n    jQuery.event.special[type] = {\n      // Utilize native event if possible so blur/focus sequence is correct\n      setup: function setup() {\n        // Claim the first handler\n        // dataPriv.set( this, \"focus\", ... )\n        // dataPriv.set( this, \"blur\", ... )\n        leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n        return false;\n      },\n      trigger: function trigger() {\n        // Force setup before trigger\n        leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n        return true;\n      },\n      // Suppress native focus or blur if we're currently inside\n      // a leveraged native-event stack\n      _default: function _default(event) {\n        return dataPriv.get(event.target, type);\n      },\n      delegateType: delegateType\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).\n\n  jQuery.each({\n    mouseenter: \"mouseover\",\n    mouseleave: \"mouseout\",\n    pointerenter: \"pointerover\",\n    pointerleave: \"pointerout\"\n  }, function (orig, fix) {\n    jQuery.event.special[orig] = {\n      delegateType: fix,\n      bindType: fix,\n      handle: function handle(event) {\n        var ret,\n            target = this,\n            related = event.relatedTarget,\n            handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n        // NB: No relatedTarget if the mouse left/entered the browser window\n\n        if (!related || related !== target && !jQuery.contains(target, related)) {\n          event.type = handleObj.origType;\n          ret = handleObj.handler.apply(this, arguments);\n          event.type = fix;\n        }\n\n        return ret;\n      }\n    };\n  });\n  jQuery.fn.extend({\n    on: function on(types, selector, data, fn) {\n      return _on(this, types, selector, data, fn);\n    },\n    one: function one(types, selector, data, fn) {\n      return _on(this, types, selector, data, fn, 1);\n    },\n    off: function off(types, selector, fn) {\n      var handleObj, type;\n\n      if (types && types.preventDefault && types.handleObj) {\n        // ( event )  dispatched jQuery.Event\n        handleObj = types.handleObj;\n        jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n        return this;\n      }\n\n      if (_typeof(types) === \"object\") {\n        // ( types-object [, selector] )\n        for (type in types) {\n          this.off(type, selector, types[type]);\n        }\n\n        return this;\n      }\n\n      if (selector === false || typeof selector === \"function\") {\n        // ( types [, fn] )\n        fn = selector;\n        selector = undefined;\n      }\n\n      if (fn === false) {\n        fn = returnFalse;\n      }\n\n      return this.each(function () {\n        jQuery.event.remove(this, types, fn, selector);\n      });\n    }\n  });\n  var // Support: IE <=10 - 11, Edge 12 - 13 only\n  // In IE/Edge using regex groups here causes severe slowdowns.\n  // See https://connect.microsoft.com/IE/feedback/details/1736512/\n  rnoInnerhtml = /<script|<style|<link/i,\n      // checked=\"checked\" or checked\n  rchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n      rcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n  function manipulationTarget(elem, content) {\n    if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n      return jQuery(elem).children(\"tbody\")[0] || elem;\n    }\n\n    return elem;\n  } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n  function disableScript(elem) {\n    elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n    return elem;\n  }\n\n  function restoreScript(elem) {\n    if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n      elem.type = elem.type.slice(5);\n    } else {\n      elem.removeAttribute(\"type\");\n    }\n\n    return elem;\n  }\n\n  function cloneCopyEvent(src, dest) {\n    var i, l, type, pdataOld, udataOld, udataCur, events;\n\n    if (dest.nodeType !== 1) {\n      return;\n    } // 1. Copy private data: events, handlers, etc.\n\n\n    if (dataPriv.hasData(src)) {\n      pdataOld = dataPriv.get(src);\n      events = pdataOld.events;\n\n      if (events) {\n        dataPriv.remove(dest, \"handle events\");\n\n        for (type in events) {\n          for (i = 0, l = events[type].length; i < l; i++) {\n            jQuery.event.add(dest, type, events[type][i]);\n          }\n        }\n      }\n    } // 2. Copy user data\n\n\n    if (dataUser.hasData(src)) {\n      udataOld = dataUser.access(src);\n      udataCur = jQuery.extend({}, udataOld);\n      dataUser.set(dest, udataCur);\n    }\n  } // Fix IE bugs, see support tests\n\n\n  function fixInput(src, dest) {\n    var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n    if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n      dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n    } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n      dest.defaultValue = src.defaultValue;\n    }\n  }\n\n  function domManip(collection, args, callback, ignored) {\n    // Flatten any nested arrays\n    args = flat(args);\n    var fragment,\n        first,\n        scripts,\n        hasScripts,\n        node,\n        doc,\n        i = 0,\n        l = collection.length,\n        iNoClone = l - 1,\n        value = args[0],\n        valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n    if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n      return collection.each(function (index) {\n        var self = collection.eq(index);\n\n        if (valueIsFunction) {\n          args[0] = value.call(this, index, self.html());\n        }\n\n        domManip(self, args, callback, ignored);\n      });\n    }\n\n    if (l) {\n      fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n      first = fragment.firstChild;\n\n      if (fragment.childNodes.length === 1) {\n        fragment = first;\n      } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n      if (first || ignored) {\n        scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n        hasScripts = scripts.length; // Use the original fragment for the last item\n        // instead of the first because it can end up\n        // being emptied incorrectly in certain situations (trac-8070).\n\n        for (; i < l; i++) {\n          node = fragment;\n\n          if (i !== iNoClone) {\n            node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n            if (hasScripts) {\n              // Support: Android <=4.0 only, PhantomJS 1 only\n              // push.apply(_, arraylike) throws on ancient WebKit\n              jQuery.merge(scripts, getAll(node, \"script\"));\n            }\n          }\n\n          callback.call(collection[i], node, i);\n        }\n\n        if (hasScripts) {\n          doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n          jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n          for (i = 0; i < hasScripts; i++) {\n            node = scripts[i];\n\n            if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n              if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n                // Optional AJAX dependency, but won't run scripts if not present\n                if (jQuery._evalUrl && !node.noModule) {\n                  jQuery._evalUrl(node.src, {\n                    nonce: node.nonce || node.getAttribute(\"nonce\")\n                  }, doc);\n                }\n              } else {\n                // Unwrap a CDATA section containing script contents. This shouldn't be\n                // needed as in XML documents they're already not visible when\n                // inspecting element contents and in HTML documents they have no\n                // meaning but we're preserving that logic for backwards compatibility.\n                // This will be removed completely in 4.0. See gh-4904.\n                DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n              }\n            }\n          }\n        }\n      }\n    }\n\n    return collection;\n  }\n\n  function _remove(elem, selector, keepData) {\n    var node,\n        nodes = selector ? jQuery.filter(selector, elem) : elem,\n        i = 0;\n\n    for (; (node = nodes[i]) != null; i++) {\n      if (!keepData && node.nodeType === 1) {\n        jQuery.cleanData(getAll(node));\n      }\n\n      if (node.parentNode) {\n        if (keepData && isAttached(node)) {\n          setGlobalEval(getAll(node, \"script\"));\n        }\n\n        node.parentNode.removeChild(node);\n      }\n    }\n\n    return elem;\n  }\n\n  jQuery.extend({\n    htmlPrefilter: function htmlPrefilter(html) {\n      return html;\n    },\n    clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n      var i,\n          l,\n          srcElements,\n          destElements,\n          clone = elem.cloneNode(true),\n          inPage = isAttached(elem); // Fix IE cloning issues\n\n      if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n        // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n        destElements = getAll(clone);\n        srcElements = getAll(elem);\n\n        for (i = 0, l = srcElements.length; i < l; i++) {\n          fixInput(srcElements[i], destElements[i]);\n        }\n      } // Copy the events from the original to the clone\n\n\n      if (dataAndEvents) {\n        if (deepDataAndEvents) {\n          srcElements = srcElements || getAll(elem);\n          destElements = destElements || getAll(clone);\n\n          for (i = 0, l = srcElements.length; i < l; i++) {\n            cloneCopyEvent(srcElements[i], destElements[i]);\n          }\n        } else {\n          cloneCopyEvent(elem, clone);\n        }\n      } // Preserve script evaluation history\n\n\n      destElements = getAll(clone, \"script\");\n\n      if (destElements.length > 0) {\n        setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n      } // Return the cloned set\n\n\n      return clone;\n    },\n    cleanData: function cleanData(elems) {\n      var data,\n          elem,\n          type,\n          special = jQuery.event.special,\n          i = 0;\n\n      for (; (elem = elems[i]) !== undefined; i++) {\n        if (acceptData(elem)) {\n          if (data = elem[dataPriv.expando]) {\n            if (data.events) {\n              for (type in data.events) {\n                if (special[type]) {\n                  jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n                } else {\n                  jQuery.removeEvent(elem, type, data.handle);\n                }\n              }\n            } // Support: Chrome <=35 - 45+\n            // Assign undefined instead of using delete, see Data#remove\n\n\n            elem[dataPriv.expando] = undefined;\n          }\n\n          if (elem[dataUser.expando]) {\n            // Support: Chrome <=35 - 45+\n            // Assign undefined instead of using delete, see Data#remove\n            elem[dataUser.expando] = undefined;\n          }\n        }\n      }\n    }\n  });\n  jQuery.fn.extend({\n    detach: function detach(selector) {\n      return _remove(this, selector, true);\n    },\n    remove: function remove(selector) {\n      return _remove(this, selector);\n    },\n    text: function text(value) {\n      return access(this, function (value) {\n        return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n          if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n            this.textContent = value;\n          }\n        });\n      }, null, value, arguments.length);\n    },\n    append: function append() {\n      return domManip(this, arguments, function (elem) {\n        if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n          var target = manipulationTarget(this, elem);\n          target.appendChild(elem);\n        }\n      });\n    },\n    prepend: function prepend() {\n      return domManip(this, arguments, function (elem) {\n        if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n          var target = manipulationTarget(this, elem);\n          target.insertBefore(elem, target.firstChild);\n        }\n      });\n    },\n    before: function before() {\n      return domManip(this, arguments, function (elem) {\n        if (this.parentNode) {\n          this.parentNode.insertBefore(elem, this);\n        }\n      });\n    },\n    after: function after() {\n      return domManip(this, arguments, function (elem) {\n        if (this.parentNode) {\n          this.parentNode.insertBefore(elem, this.nextSibling);\n        }\n      });\n    },\n    empty: function empty() {\n      var elem,\n          i = 0;\n\n      for (; (elem = this[i]) != null; i++) {\n        if (elem.nodeType === 1) {\n          // Prevent memory leaks\n          jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n          elem.textContent = \"\";\n        }\n      }\n\n      return this;\n    },\n    clone: function clone(dataAndEvents, deepDataAndEvents) {\n      dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n      deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n      return this.map(function () {\n        return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n      });\n    },\n    html: function html(value) {\n      return access(this, function (value) {\n        var elem = this[0] || {},\n            i = 0,\n            l = this.length;\n\n        if (value === undefined && elem.nodeType === 1) {\n          return elem.innerHTML;\n        } // See if we can take a shortcut and just use innerHTML\n\n\n        if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n          value = jQuery.htmlPrefilter(value);\n\n          try {\n            for (; i < l; i++) {\n              elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n              if (elem.nodeType === 1) {\n                jQuery.cleanData(getAll(elem, false));\n                elem.innerHTML = value;\n              }\n            }\n\n            elem = 0; // If using innerHTML throws an exception, use the fallback method\n          } catch (e) {}\n        }\n\n        if (elem) {\n          this.empty().append(value);\n        }\n      }, null, value, arguments.length);\n    },\n    replaceWith: function replaceWith() {\n      var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n      return domManip(this, arguments, function (elem) {\n        var parent = this.parentNode;\n\n        if (jQuery.inArray(this, ignored) < 0) {\n          jQuery.cleanData(getAll(this));\n\n          if (parent) {\n            parent.replaceChild(elem, this);\n          }\n        } // Force callback invocation\n\n      }, ignored);\n    }\n  });\n  jQuery.each({\n    appendTo: \"append\",\n    prependTo: \"prepend\",\n    insertBefore: \"before\",\n    insertAfter: \"after\",\n    replaceAll: \"replaceWith\"\n  }, function (name, original) {\n    jQuery.fn[name] = function (selector) {\n      var elems,\n          ret = [],\n          insert = jQuery(selector),\n          last = insert.length - 1,\n          i = 0;\n\n      for (; i <= last; i++) {\n        elems = i === last ? this : this.clone(true);\n        jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n        // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n        push.apply(ret, elems.get());\n      }\n\n      return this.pushStack(ret);\n    };\n  });\n  var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n  var rcustomProp = /^--/;\n\n  var getStyles = function getStyles(elem) {\n    // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n    // IE throws on elements created in popups\n    // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n    var view = elem.ownerDocument.defaultView;\n\n    if (!view || !view.opener) {\n      view = window;\n    }\n\n    return view.getComputedStyle(elem);\n  };\n\n  var swap = function swap(elem, options, callback) {\n    var ret,\n        name,\n        old = {}; // Remember the old values, and insert the new ones\n\n    for (name in options) {\n      old[name] = elem.style[name];\n      elem.style[name] = options[name];\n    }\n\n    ret = callback.call(elem); // Revert the old values\n\n    for (name in options) {\n      elem.style[name] = old[name];\n    }\n\n    return ret;\n  };\n\n  var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n  var whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n  var rtrimCSS = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\");\n\n  (function () {\n    // Executing both pixelPosition & boxSizingReliable tests require only one layout\n    // so they're executed at the same time to save the second computation.\n    function computeStyleTests() {\n      // This is a singleton, we need to execute it only once\n      if (!div) {\n        return;\n      }\n\n      container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n      div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n      documentElement.appendChild(container).appendChild(div);\n      var divStyle = window.getComputedStyle(div);\n      pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n      reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n      // Some styles come back with percentage values, even though they shouldn't\n\n      div.style.right = \"60%\";\n      pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n      // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n      boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n      // Detect overflow:scroll screwiness (gh-3699)\n      // Support: Chrome <=64\n      // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n      div.style.position = \"absolute\";\n      scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n      documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n      // it will also be a sign that checks already performed\n\n      div = null;\n    }\n\n    function roundPixelMeasures(measure) {\n      return Math.round(parseFloat(measure));\n    }\n\n    var pixelPositionVal,\n        boxSizingReliableVal,\n        scrollboxSizeVal,\n        pixelBoxStylesVal,\n        reliableTrDimensionsVal,\n        reliableMarginLeftVal,\n        container = document.createElement(\"div\"),\n        div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n    if (!div.style) {\n      return;\n    } // Support: IE <=9 - 11 only\n    // Style of cloned element affects source element cloned (trac-8908)\n\n\n    div.style.backgroundClip = \"content-box\";\n    div.cloneNode(true).style.backgroundClip = \"\";\n    support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n    jQuery.extend(support, {\n      boxSizingReliable: function boxSizingReliable() {\n        computeStyleTests();\n        return boxSizingReliableVal;\n      },\n      pixelBoxStyles: function pixelBoxStyles() {\n        computeStyleTests();\n        return pixelBoxStylesVal;\n      },\n      pixelPosition: function pixelPosition() {\n        computeStyleTests();\n        return pixelPositionVal;\n      },\n      reliableMarginLeft: function reliableMarginLeft() {\n        computeStyleTests();\n        return reliableMarginLeftVal;\n      },\n      scrollboxSize: function scrollboxSize() {\n        computeStyleTests();\n        return scrollboxSizeVal;\n      },\n      // Support: IE 9 - 11+, Edge 15 - 18+\n      // IE/Edge misreport `getComputedStyle` of table rows with width/height\n      // set in CSS while `offset*` properties report correct values.\n      // Behavior in IE 9 is more subtle than in newer versions & it passes\n      // some versions of this test; make sure not to make it pass there!\n      //\n      // Support: Firefox 70+\n      // Only Firefox includes border widths\n      // in computed dimensions. (gh-4529)\n      reliableTrDimensions: function reliableTrDimensions() {\n        var table, tr, trChild, trStyle;\n\n        if (reliableTrDimensionsVal == null) {\n          table = document.createElement(\"table\");\n          tr = document.createElement(\"tr\");\n          trChild = document.createElement(\"div\");\n          table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n          tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n          // Height set through cssText does not get applied.\n          // Computed height then comes back as 0.\n\n          tr.style.height = \"1px\";\n          trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n          // In our bodyBackground.html iframe,\n          // display for all div elements is set to \"inline\",\n          // which causes a problem only in Android 8 Chrome 86.\n          // Ensuring the div is display: block\n          // gets around this issue.\n\n          trChild.style.display = \"block\";\n          documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n          trStyle = window.getComputedStyle(tr);\n          reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n          documentElement.removeChild(table);\n        }\n\n        return reliableTrDimensionsVal;\n      }\n    });\n  })();\n\n  function curCSS(elem, name, computed) {\n    var width,\n        minWidth,\n        maxWidth,\n        ret,\n        isCustomProp = rcustomProp.test(name),\n        // Support: Firefox 51+\n    // Retrieving style before computed somehow\n    // fixes an issue with getting wrong values\n    // on detached elements\n    style = elem.style;\n    computed = computed || getStyles(elem); // getPropertyValue is needed for:\n    //   .css('filter') (IE 9 only, trac-12537)\n    //   .css('--customProperty) (gh-3144)\n\n    if (computed) {\n      // Support: IE <=9 - 11+\n      // IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n      // it's only available as `\"cssFloat\"`. We no longer modify properties\n      // sent to `.css()` apart from camelCasing, so we need to check both.\n      // Normally, this would create difference in behavior: if\n      // `getPropertyValue` returns an empty string, the value returned\n      // by `.css()` would be `undefined`. This is usually the case for\n      // disconnected elements. However, in IE even disconnected elements\n      // with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n      ret = computed.getPropertyValue(name) || computed[name];\n\n      if (isCustomProp && ret) {\n        // Support: Firefox 105+, Chrome <=105+\n        // Spec requires trimming whitespace for custom properties (gh-4926).\n        // Firefox only trims leading whitespace. Chrome just collapses\n        // both leading & trailing whitespace to a single space.\n        //\n        // Fall back to `undefined` if empty string returned.\n        // This collapses a missing definition with property defined\n        // and set to an empty string but there's no standard API\n        // allowing us to differentiate them without a performance penalty\n        // and returning `undefined` aligns with older jQuery.\n        //\n        // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n        // as whitespace while CSS does not, but this is not a problem\n        // because CSS preprocessing replaces them with U+000A LINE FEED\n        // (which *is* CSS whitespace)\n        // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n        ret = ret.replace(rtrimCSS, \"$1\") || undefined;\n      }\n\n      if (ret === \"\" && !isAttached(elem)) {\n        ret = jQuery.style(elem, name);\n      } // A tribute to the \"awesome hack by Dean Edwards\"\n      // Android Browser returns percentage for some values,\n      // but width seems to be reliably pixels.\n      // This is against the CSSOM draft spec:\n      // https://drafts.csswg.org/cssom/#resolved-values\n\n\n      if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n        // Remember the original values\n        width = style.width;\n        minWidth = style.minWidth;\n        maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n        style.minWidth = style.maxWidth = style.width = ret;\n        ret = computed.width; // Revert the changed values\n\n        style.width = width;\n        style.minWidth = minWidth;\n        style.maxWidth = maxWidth;\n      }\n    }\n\n    return ret !== undefined ? // Support: IE <=9 - 11 only\n    // IE returns zIndex value as an integer.\n    ret + \"\" : ret;\n  }\n\n  function addGetHookIf(conditionFn, hookFn) {\n    // Define the hook, we'll check on the first run if it's really needed.\n    return {\n      get: function get() {\n        if (conditionFn()) {\n          // Hook not needed (or it's not possible to use it due\n          // to missing dependency), remove it.\n          delete this.get;\n          return;\n        } // Hook needed; redefine it so that the support test is not executed again.\n\n\n        return (this.get = hookFn).apply(this, arguments);\n      }\n    };\n  }\n\n  var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n      emptyStyle = document.createElement(\"div\").style,\n      vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n  function vendorPropName(name) {\n    // Check for vendor prefixed names\n    var capName = name[0].toUpperCase() + name.slice(1),\n        i = cssPrefixes.length;\n\n    while (i--) {\n      name = cssPrefixes[i] + capName;\n\n      if (name in emptyStyle) {\n        return name;\n      }\n    }\n  } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n  function finalPropName(name) {\n    var final = jQuery.cssProps[name] || vendorProps[name];\n\n    if (final) {\n      return final;\n    }\n\n    if (name in emptyStyle) {\n      return name;\n    }\n\n    return vendorProps[name] = vendorPropName(name) || name;\n  }\n\n  var // Swappable if display is none or starts with table\n  // except \"table\", \"table-cell\", or \"table-caption\"\n  // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n  rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n      cssShow = {\n    position: \"absolute\",\n    visibility: \"hidden\",\n    display: \"block\"\n  },\n      cssNormalTransform = {\n    letterSpacing: \"0\",\n    fontWeight: \"400\"\n  };\n\n  function setPositiveNumber(_elem, value, subtract) {\n    // Any relative (+/-) values have already been\n    // normalized at this point\n    var matches = rcssNum.exec(value);\n    return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n    Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n  }\n\n  function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n    var i = dimension === \"width\" ? 1 : 0,\n        extra = 0,\n        delta = 0; // Adjustment may not be necessary\n\n    if (box === (isBorderBox ? \"border\" : \"content\")) {\n      return 0;\n    }\n\n    for (; i < 4; i += 2) {\n      // Both box models exclude margin\n      if (box === \"margin\") {\n        delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n      } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n      if (!isBorderBox) {\n        // Add padding\n        delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n        if (box !== \"padding\") {\n          delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n        } else {\n          extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n        } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n        // \"padding\" or \"margin\"\n\n      } else {\n        // For \"content\", subtract padding\n        if (box === \"content\") {\n          delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n        } // For \"content\" or \"padding\", subtract border\n\n\n        if (box !== \"margin\") {\n          delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n        }\n      }\n    } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n    if (!isBorderBox && computedVal >= 0) {\n      // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n      // Assuming integer scroll gutter, subtract the rest and round down\n      delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n      // Use an explicit zero to avoid NaN (gh-3964)\n      )) || 0;\n    }\n\n    return delta;\n  }\n\n  function getWidthOrHeight(elem, dimension, extra) {\n    // Start with computed style\n    var styles = getStyles(elem),\n        // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n    // Fake content-box until we know it's needed to know the true value.\n    boxSizingNeeded = !support.boxSizingReliable() || extra,\n        isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n        valueIsBorderBox = isBorderBox,\n        val = curCSS(elem, dimension, styles),\n        offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n    // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n    if (rnumnonpx.test(val)) {\n      if (!extra) {\n        return val;\n      }\n\n      val = \"auto\";\n    } // Support: IE 9 - 11 only\n    // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n    // In those cases, the computed value can be trusted to be border-box.\n\n\n    if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n    // IE/Edge misreport `getComputedStyle` of table rows with width/height\n    // set in CSS while `offset*` properties report correct values.\n    // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n    !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n    // This happens for inline elements with no explicit setting (gh-3571)\n    val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n    // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n    !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n    elem.getClientRects().length) {\n      isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n      // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n      // retrieved value as a content box dimension.\n\n      valueIsBorderBox = offsetProp in elem;\n\n      if (valueIsBorderBox) {\n        val = elem[offsetProp];\n      }\n    } // Normalize \"\" and auto\n\n\n    val = parseFloat(val) || 0; // Adjust for the element's box model\n\n    return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n    val) + \"px\";\n  }\n\n  jQuery.extend({\n    // Add in style property hooks for overriding the default\n    // behavior of getting and setting a style property\n    cssHooks: {\n      opacity: {\n        get: function get(elem, computed) {\n          if (computed) {\n            // We should always get a number back from opacity\n            var ret = curCSS(elem, \"opacity\");\n            return ret === \"\" ? \"1\" : ret;\n          }\n        }\n      }\n    },\n    // Don't automatically add \"px\" to these possibly-unitless properties\n    cssNumber: {\n      \"animationIterationCount\": true,\n      \"columnCount\": true,\n      \"fillOpacity\": true,\n      \"flexGrow\": true,\n      \"flexShrink\": true,\n      \"fontWeight\": true,\n      \"gridArea\": true,\n      \"gridColumn\": true,\n      \"gridColumnEnd\": true,\n      \"gridColumnStart\": true,\n      \"gridRow\": true,\n      \"gridRowEnd\": true,\n      \"gridRowStart\": true,\n      \"lineHeight\": true,\n      \"opacity\": true,\n      \"order\": true,\n      \"orphans\": true,\n      \"widows\": true,\n      \"zIndex\": true,\n      \"zoom\": true\n    },\n    // Add in properties whose names you wish to fix before\n    // setting or getting the value\n    cssProps: {},\n    // Get and set the style property on a DOM Node\n    style: function style(elem, name, value, extra) {\n      // Don't set styles on text and comment nodes\n      if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n        return;\n      } // Make sure that we're working with the right name\n\n\n      var ret,\n          type,\n          hooks,\n          origName = camelCase(name),\n          isCustomProp = rcustomProp.test(name),\n          style = elem.style; // Make sure that we're working with the right name. We don't\n      // want to query the value if it is a CSS custom property\n      // since they are user-defined.\n\n      if (!isCustomProp) {\n        name = finalPropName(origName);\n      } // Gets hook for the prefixed version, then unprefixed version\n\n\n      hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n      if (value !== undefined) {\n        type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\n        if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n          value = adjustCSS(elem, name, ret); // Fixes bug trac-9237\n\n          type = \"number\";\n        } // Make sure that null and NaN values aren't set (trac-7116)\n\n\n        if (value == null || value !== value) {\n          return;\n        } // If a number was passed in, add the unit (except for certain CSS properties)\n        // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n        // \"px\" to a few hardcoded values.\n\n\n        if (type === \"number\" && !isCustomProp) {\n          value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n        } // background-* props affect original clone's values\n\n\n        if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n          style[name] = \"inherit\";\n        } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n        if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n          if (isCustomProp) {\n            style.setProperty(name, value);\n          } else {\n            style[name] = value;\n          }\n        }\n      } else {\n        // If a hook was provided get the non-computed value from there\n        if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n          return ret;\n        } // Otherwise just get the value from the style object\n\n\n        return style[name];\n      }\n    },\n    css: function css(elem, name, extra, styles) {\n      var val,\n          num,\n          hooks,\n          origName = camelCase(name),\n          isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n      // want to modify the value if it is a CSS custom property\n      // since they are user-defined.\n\n      if (!isCustomProp) {\n        name = finalPropName(origName);\n      } // Try prefixed name followed by the unprefixed name\n\n\n      hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n      if (hooks && \"get\" in hooks) {\n        val = hooks.get(elem, true, extra);\n      } // Otherwise, if a way to get the computed value exists, use that\n\n\n      if (val === undefined) {\n        val = curCSS(elem, name, styles);\n      } // Convert \"normal\" to computed value\n\n\n      if (val === \"normal\" && name in cssNormalTransform) {\n        val = cssNormalTransform[name];\n      } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n      if (extra === \"\" || extra) {\n        num = parseFloat(val);\n        return extra === true || isFinite(num) ? num || 0 : val;\n      }\n\n      return val;\n    }\n  });\n  jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n    jQuery.cssHooks[dimension] = {\n      get: function get(elem, computed, extra) {\n        if (computed) {\n          // Certain elements can have dimension info if we invisibly show them\n          // but it must have a current display style that would benefit\n          return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n          // Table columns in Safari have non-zero offsetWidth & zero\n          // getBoundingClientRect().width unless display is changed.\n          // Support: IE <=11 only\n          // Running getBoundingClientRect on a disconnected node\n          // in IE throws an error.\n          !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n            return getWidthOrHeight(elem, dimension, extra);\n          }) : getWidthOrHeight(elem, dimension, extra);\n        }\n      },\n      set: function set(elem, value, extra) {\n        var matches,\n            styles = getStyles(elem),\n            // Only read styles.position if the test has a chance to fail\n        // to avoid forcing a reflow.\n        scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n            // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n        boxSizingNeeded = scrollboxSizeBuggy || extra,\n            isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n            subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n        // faking a content-box to get border and padding (gh-3699)\n\n        if (isBorderBox && scrollboxSizeBuggy) {\n          subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n        } // Convert to pixels if value adjustment is needed\n\n\n        if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n          elem.style[dimension] = value;\n          value = jQuery.css(elem, dimension);\n        }\n\n        return setPositiveNumber(elem, value, subtract);\n      }\n    };\n  });\n  jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n    if (computed) {\n      return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n        marginLeft: 0\n      }, function () {\n        return elem.getBoundingClientRect().left;\n      })) + \"px\";\n    }\n  }); // These hooks are used by animate to expand properties\n\n  jQuery.each({\n    margin: \"\",\n    padding: \"\",\n    border: \"Width\"\n  }, function (prefix, suffix) {\n    jQuery.cssHooks[prefix + suffix] = {\n      expand: function expand(value) {\n        var i = 0,\n            expanded = {},\n            // Assumes a single number if not a string\n        parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n        for (; i < 4; i++) {\n          expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n        }\n\n        return expanded;\n      }\n    };\n\n    if (prefix !== \"margin\") {\n      jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n    }\n  });\n  jQuery.fn.extend({\n    css: function css(name, value) {\n      return access(this, function (elem, name, value) {\n        var styles,\n            len,\n            map = {},\n            i = 0;\n\n        if (Array.isArray(name)) {\n          styles = getStyles(elem);\n          len = name.length;\n\n          for (; i < len; i++) {\n            map[name[i]] = jQuery.css(elem, name[i], false, styles);\n          }\n\n          return map;\n        }\n\n        return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n      }, name, value, arguments.length > 1);\n    }\n  });\n\n  function Tween(elem, options, prop, end, easing) {\n    return new Tween.prototype.init(elem, options, prop, end, easing);\n  }\n\n  jQuery.Tween = Tween;\n  Tween.prototype = {\n    constructor: Tween,\n    init: function init(elem, options, prop, end, easing, unit) {\n      this.elem = elem;\n      this.prop = prop;\n      this.easing = easing || jQuery.easing._default;\n      this.options = options;\n      this.start = this.now = this.cur();\n      this.end = end;\n      this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n    },\n    cur: function cur() {\n      var hooks = Tween.propHooks[this.prop];\n      return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n    },\n    run: function run(percent) {\n      var eased,\n          hooks = Tween.propHooks[this.prop];\n\n      if (this.options.duration) {\n        this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n      } else {\n        this.pos = eased = percent;\n      }\n\n      this.now = (this.end - this.start) * eased + this.start;\n\n      if (this.options.step) {\n        this.options.step.call(this.elem, this.now, this);\n      }\n\n      if (hooks && hooks.set) {\n        hooks.set(this);\n      } else {\n        Tween.propHooks._default.set(this);\n      }\n\n      return this;\n    }\n  };\n  Tween.prototype.init.prototype = Tween.prototype;\n  Tween.propHooks = {\n    _default: {\n      get: function get(tween) {\n        var result; // Use a property on the element directly when it is not a DOM element,\n        // or when there is no matching style property that exists.\n\n        if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n          return tween.elem[tween.prop];\n        } // Passing an empty string as a 3rd parameter to .css will automatically\n        // attempt a parseFloat and fallback to a string if the parse fails.\n        // Simple values such as \"10px\" are parsed to Float;\n        // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n        result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n        return !result || result === \"auto\" ? 0 : result;\n      },\n      set: function set(tween) {\n        // Use step hook for back compat.\n        // Use cssHook if its there.\n        // Use .style if available and use plain properties where available.\n        if (jQuery.fx.step[tween.prop]) {\n          jQuery.fx.step[tween.prop](tween);\n        } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n          jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n        } else {\n          tween.elem[tween.prop] = tween.now;\n        }\n      }\n    }\n  }; // Support: IE <=9 only\n  // Panic based approach to setting things on disconnected nodes\n\n  Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n    set: function set(tween) {\n      if (tween.elem.nodeType && tween.elem.parentNode) {\n        tween.elem[tween.prop] = tween.now;\n      }\n    }\n  };\n  jQuery.easing = {\n    linear: function linear(p) {\n      return p;\n    },\n    swing: function swing(p) {\n      return 0.5 - Math.cos(p * Math.PI) / 2;\n    },\n    _default: \"swing\"\n  };\n  jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n  jQuery.fx.step = {};\n  var fxNow,\n      inProgress,\n      rfxtypes = /^(?:toggle|show|hide)$/,\n      rrun = /queueHooks$/;\n\n  function schedule() {\n    if (inProgress) {\n      if (document.hidden === false && window.requestAnimationFrame) {\n        window.requestAnimationFrame(schedule);\n      } else {\n        window.setTimeout(schedule, jQuery.fx.interval);\n      }\n\n      jQuery.fx.tick();\n    }\n  } // Animations created synchronously will run synchronously\n\n\n  function createFxNow() {\n    window.setTimeout(function () {\n      fxNow = undefined;\n    });\n    return fxNow = Date.now();\n  } // Generate parameters to create a standard animation\n\n\n  function genFx(type, includeWidth) {\n    var which,\n        i = 0,\n        attrs = {\n      height: type\n    }; // If we include width, step value is 1 to do all cssExpand values,\n    // otherwise step value is 2 to skip over Left and Right\n\n    includeWidth = includeWidth ? 1 : 0;\n\n    for (; i < 4; i += 2 - includeWidth) {\n      which = cssExpand[i];\n      attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n    }\n\n    if (includeWidth) {\n      attrs.opacity = attrs.width = type;\n    }\n\n    return attrs;\n  }\n\n  function createTween(value, prop, animation) {\n    var tween,\n        collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n        index = 0,\n        length = collection.length;\n\n    for (; index < length; index++) {\n      if (tween = collection[index].call(animation, prop, value)) {\n        // We're done with this property\n        return tween;\n      }\n    }\n  }\n\n  function defaultPrefilter(elem, props, opts) {\n    var prop,\n        value,\n        toggle,\n        hooks,\n        oldfire,\n        propTween,\n        restoreDisplay,\n        display,\n        isBox = \"width\" in props || \"height\" in props,\n        anim = this,\n        orig = {},\n        style = elem.style,\n        hidden = elem.nodeType && isHiddenWithinTree(elem),\n        dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n    if (!opts.queue) {\n      hooks = jQuery._queueHooks(elem, \"fx\");\n\n      if (hooks.unqueued == null) {\n        hooks.unqueued = 0;\n        oldfire = hooks.empty.fire;\n\n        hooks.empty.fire = function () {\n          if (!hooks.unqueued) {\n            oldfire();\n          }\n        };\n      }\n\n      hooks.unqueued++;\n      anim.always(function () {\n        // Ensure the complete handler is called before this completes\n        anim.always(function () {\n          hooks.unqueued--;\n\n          if (!jQuery.queue(elem, \"fx\").length) {\n            hooks.empty.fire();\n          }\n        });\n      });\n    } // Detect show/hide animations\n\n\n    for (prop in props) {\n      value = props[prop];\n\n      if (rfxtypes.test(value)) {\n        delete props[prop];\n        toggle = toggle || value === \"toggle\";\n\n        if (value === (hidden ? \"hide\" : \"show\")) {\n          // Pretend to be hidden if this is a \"show\" and\n          // there is still data from a stopped show/hide\n          if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n            hidden = true; // Ignore all other no-op show/hide data\n          } else {\n            continue;\n          }\n        }\n\n        orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n      }\n    } // Bail out if this is a no-op like .hide().hide()\n\n\n    propTween = !jQuery.isEmptyObject(props);\n\n    if (!propTween && jQuery.isEmptyObject(orig)) {\n      return;\n    } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n    if (isBox && elem.nodeType === 1) {\n      // Support: IE <=9 - 11, Edge 12 - 15\n      // Record all 3 overflow attributes because IE does not infer the shorthand\n      // from identically-valued overflowX and overflowY and Edge just mirrors\n      // the overflowX value there.\n      opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n      restoreDisplay = dataShow && dataShow.display;\n\n      if (restoreDisplay == null) {\n        restoreDisplay = dataPriv.get(elem, \"display\");\n      }\n\n      display = jQuery.css(elem, \"display\");\n\n      if (display === \"none\") {\n        if (restoreDisplay) {\n          display = restoreDisplay;\n        } else {\n          // Get nonempty value(s) by temporarily forcing visibility\n          showHide([elem], true);\n          restoreDisplay = elem.style.display || restoreDisplay;\n          display = jQuery.css(elem, \"display\");\n          showHide([elem]);\n        }\n      } // Animate inline elements as inline-block\n\n\n      if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n        if (jQuery.css(elem, \"float\") === \"none\") {\n          // Restore the original display value at the end of pure show/hide animations\n          if (!propTween) {\n            anim.done(function () {\n              style.display = restoreDisplay;\n            });\n\n            if (restoreDisplay == null) {\n              display = style.display;\n              restoreDisplay = display === \"none\" ? \"\" : display;\n            }\n          }\n\n          style.display = \"inline-block\";\n        }\n      }\n    }\n\n    if (opts.overflow) {\n      style.overflow = \"hidden\";\n      anim.always(function () {\n        style.overflow = opts.overflow[0];\n        style.overflowX = opts.overflow[1];\n        style.overflowY = opts.overflow[2];\n      });\n    } // Implement show/hide animations\n\n\n    propTween = false;\n\n    for (prop in orig) {\n      // General show/hide setup for this element animation\n      if (!propTween) {\n        if (dataShow) {\n          if (\"hidden\" in dataShow) {\n            hidden = dataShow.hidden;\n          }\n        } else {\n          dataShow = dataPriv.access(elem, \"fxshow\", {\n            display: restoreDisplay\n          });\n        } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n        if (toggle) {\n          dataShow.hidden = !hidden;\n        } // Show elements before animating them\n\n\n        if (hidden) {\n          showHide([elem], true);\n        }\n        /* eslint-disable no-loop-func */\n\n\n        anim.done(function () {\n          /* eslint-enable no-loop-func */\n          // The final step of a \"hide\" animation is actually hiding the element\n          if (!hidden) {\n            showHide([elem]);\n          }\n\n          dataPriv.remove(elem, \"fxshow\");\n\n          for (prop in orig) {\n            jQuery.style(elem, prop, orig[prop]);\n          }\n        });\n      } // Per-property setup\n\n\n      propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n      if (!(prop in dataShow)) {\n        dataShow[prop] = propTween.start;\n\n        if (hidden) {\n          propTween.end = propTween.start;\n          propTween.start = 0;\n        }\n      }\n    }\n  }\n\n  function propFilter(props, specialEasing) {\n    var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n    for (index in props) {\n      name = camelCase(index);\n      easing = specialEasing[name];\n      value = props[index];\n\n      if (Array.isArray(value)) {\n        easing = value[1];\n        value = props[index] = value[0];\n      }\n\n      if (index !== name) {\n        props[name] = value;\n        delete props[index];\n      }\n\n      hooks = jQuery.cssHooks[name];\n\n      if (hooks && \"expand\" in hooks) {\n        value = hooks.expand(value);\n        delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n        // Reusing 'index' because we have the correct \"name\"\n\n        for (index in value) {\n          if (!(index in props)) {\n            props[index] = value[index];\n            specialEasing[index] = easing;\n          }\n        }\n      } else {\n        specialEasing[name] = easing;\n      }\n    }\n  }\n\n  function Animation(elem, properties, options) {\n    var result,\n        stopped,\n        index = 0,\n        length = Animation.prefilters.length,\n        deferred = jQuery.Deferred().always(function () {\n      // Don't match elem in the :animated selector\n      delete tick.elem;\n    }),\n        tick = function tick() {\n      if (stopped) {\n        return false;\n      }\n\n      var currentTime = fxNow || createFxNow(),\n          remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n          // Support: Android 2.3 only\n      // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n      temp = remaining / animation.duration || 0,\n          percent = 1 - temp,\n          index = 0,\n          length = animation.tweens.length;\n\n      for (; index < length; index++) {\n        animation.tweens[index].run(percent);\n      }\n\n      deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n      if (percent < 1 && length) {\n        return remaining;\n      } // If this was an empty animation, synthesize a final progress notification\n\n\n      if (!length) {\n        deferred.notifyWith(elem, [animation, 1, 0]);\n      } // Resolve the animation and report its conclusion\n\n\n      deferred.resolveWith(elem, [animation]);\n      return false;\n    },\n        animation = deferred.promise({\n      elem: elem,\n      props: jQuery.extend({}, properties),\n      opts: jQuery.extend(true, {\n        specialEasing: {},\n        easing: jQuery.easing._default\n      }, options),\n      originalProperties: properties,\n      originalOptions: options,\n      startTime: fxNow || createFxNow(),\n      duration: options.duration,\n      tweens: [],\n      createTween: function createTween(prop, end) {\n        var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n        animation.tweens.push(tween);\n        return tween;\n      },\n      stop: function stop(gotoEnd) {\n        var index = 0,\n            // If we are going to the end, we want to run all the tweens\n        // otherwise we skip this part\n        length = gotoEnd ? animation.tweens.length : 0;\n\n        if (stopped) {\n          return this;\n        }\n\n        stopped = true;\n\n        for (; index < length; index++) {\n          animation.tweens[index].run(1);\n        } // Resolve when we played the last frame; otherwise, reject\n\n\n        if (gotoEnd) {\n          deferred.notifyWith(elem, [animation, 1, 0]);\n          deferred.resolveWith(elem, [animation, gotoEnd]);\n        } else {\n          deferred.rejectWith(elem, [animation, gotoEnd]);\n        }\n\n        return this;\n      }\n    }),\n        props = animation.props;\n\n    propFilter(props, animation.opts.specialEasing);\n\n    for (; index < length; index++) {\n      result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n      if (result) {\n        if (isFunction(result.stop)) {\n          jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n        }\n\n        return result;\n      }\n    }\n\n    jQuery.map(props, createTween, animation);\n\n    if (isFunction(animation.opts.start)) {\n      animation.opts.start.call(elem, animation);\n    } // Attach callbacks from options\n\n\n    animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n    jQuery.fx.timer(jQuery.extend(tick, {\n      elem: elem,\n      anim: animation,\n      queue: animation.opts.queue\n    }));\n    return animation;\n  }\n\n  jQuery.Animation = jQuery.extend(Animation, {\n    tweeners: {\n      \"*\": [function (prop, value) {\n        var tween = this.createTween(prop, value);\n        adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n        return tween;\n      }]\n    },\n    tweener: function tweener(props, callback) {\n      if (isFunction(props)) {\n        callback = props;\n        props = [\"*\"];\n      } else {\n        props = props.match(rnothtmlwhite);\n      }\n\n      var prop,\n          index = 0,\n          length = props.length;\n\n      for (; index < length; index++) {\n        prop = props[index];\n        Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n        Animation.tweeners[prop].unshift(callback);\n      }\n    },\n    prefilters: [defaultPrefilter],\n    prefilter: function prefilter(callback, prepend) {\n      if (prepend) {\n        Animation.prefilters.unshift(callback);\n      } else {\n        Animation.prefilters.push(callback);\n      }\n    }\n  });\n\n  jQuery.speed = function (speed, easing, fn) {\n    var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n      complete: fn || !fn && easing || isFunction(speed) && speed,\n      duration: speed,\n      easing: fn && easing || easing && !isFunction(easing) && easing\n    }; // Go to the end state if fx are off\n\n    if (jQuery.fx.off) {\n      opt.duration = 0;\n    } else {\n      if (typeof opt.duration !== \"number\") {\n        if (opt.duration in jQuery.fx.speeds) {\n          opt.duration = jQuery.fx.speeds[opt.duration];\n        } else {\n          opt.duration = jQuery.fx.speeds._default;\n        }\n      }\n    } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n    if (opt.queue == null || opt.queue === true) {\n      opt.queue = \"fx\";\n    } // Queueing\n\n\n    opt.old = opt.complete;\n\n    opt.complete = function () {\n      if (isFunction(opt.old)) {\n        opt.old.call(this);\n      }\n\n      if (opt.queue) {\n        jQuery.dequeue(this, opt.queue);\n      }\n    };\n\n    return opt;\n  };\n\n  jQuery.fn.extend({\n    fadeTo: function fadeTo(speed, to, easing, callback) {\n      // Show any hidden elements after setting opacity to 0\n      return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n      .end().animate({\n        opacity: to\n      }, speed, easing, callback);\n    },\n    animate: function animate(prop, speed, easing, callback) {\n      var empty = jQuery.isEmptyObject(prop),\n          optall = jQuery.speed(speed, easing, callback),\n          doAnimation = function doAnimation() {\n        // Operate on a copy of prop so per-property easing won't be lost\n        var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n        if (empty || dataPriv.get(this, \"finish\")) {\n          anim.stop(true);\n        }\n      };\n\n      doAnimation.finish = doAnimation;\n      return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n    },\n    stop: function stop(type, clearQueue, gotoEnd) {\n      var stopQueue = function stopQueue(hooks) {\n        var stop = hooks.stop;\n        delete hooks.stop;\n        stop(gotoEnd);\n      };\n\n      if (typeof type !== \"string\") {\n        gotoEnd = clearQueue;\n        clearQueue = type;\n        type = undefined;\n      }\n\n      if (clearQueue) {\n        this.queue(type || \"fx\", []);\n      }\n\n      return this.each(function () {\n        var dequeue = true,\n            index = type != null && type + \"queueHooks\",\n            timers = jQuery.timers,\n            data = dataPriv.get(this);\n\n        if (index) {\n          if (data[index] && data[index].stop) {\n            stopQueue(data[index]);\n          }\n        } else {\n          for (index in data) {\n            if (data[index] && data[index].stop && rrun.test(index)) {\n              stopQueue(data[index]);\n            }\n          }\n        }\n\n        for (index = timers.length; index--;) {\n          if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n            timers[index].anim.stop(gotoEnd);\n            dequeue = false;\n            timers.splice(index, 1);\n          }\n        } // Start the next in the queue if the last step wasn't forced.\n        // Timers currently will call their complete callbacks, which\n        // will dequeue but only if they were gotoEnd.\n\n\n        if (dequeue || !gotoEnd) {\n          jQuery.dequeue(this, type);\n        }\n      });\n    },\n    finish: function finish(type) {\n      if (type !== false) {\n        type = type || \"fx\";\n      }\n\n      return this.each(function () {\n        var index,\n            data = dataPriv.get(this),\n            queue = data[type + \"queue\"],\n            hooks = data[type + \"queueHooks\"],\n            timers = jQuery.timers,\n            length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n        data.finish = true; // Empty the queue first\n\n        jQuery.queue(this, type, []);\n\n        if (hooks && hooks.stop) {\n          hooks.stop.call(this, true);\n        } // Look for any active animations, and finish them\n\n\n        for (index = timers.length; index--;) {\n          if (timers[index].elem === this && timers[index].queue === type) {\n            timers[index].anim.stop(true);\n            timers.splice(index, 1);\n          }\n        } // Look for any animations in the old queue and finish them\n\n\n        for (index = 0; index < length; index++) {\n          if (queue[index] && queue[index].finish) {\n            queue[index].finish.call(this);\n          }\n        } // Turn off finishing flag\n\n\n        delete data.finish;\n      });\n    }\n  });\n  jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n    var cssFn = jQuery.fn[name];\n\n    jQuery.fn[name] = function (speed, easing, callback) {\n      return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n    };\n  }); // Generate shortcuts for custom animations\n\n  jQuery.each({\n    slideDown: genFx(\"show\"),\n    slideUp: genFx(\"hide\"),\n    slideToggle: genFx(\"toggle\"),\n    fadeIn: {\n      opacity: \"show\"\n    },\n    fadeOut: {\n      opacity: \"hide\"\n    },\n    fadeToggle: {\n      opacity: \"toggle\"\n    }\n  }, function (name, props) {\n    jQuery.fn[name] = function (speed, easing, callback) {\n      return this.animate(props, speed, easing, callback);\n    };\n  });\n  jQuery.timers = [];\n\n  jQuery.fx.tick = function () {\n    var timer,\n        i = 0,\n        timers = jQuery.timers;\n    fxNow = Date.now();\n\n    for (; i < timers.length; i++) {\n      timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n      if (!timer() && timers[i] === timer) {\n        timers.splice(i--, 1);\n      }\n    }\n\n    if (!timers.length) {\n      jQuery.fx.stop();\n    }\n\n    fxNow = undefined;\n  };\n\n  jQuery.fx.timer = function (timer) {\n    jQuery.timers.push(timer);\n    jQuery.fx.start();\n  };\n\n  jQuery.fx.interval = 13;\n\n  jQuery.fx.start = function () {\n    if (inProgress) {\n      return;\n    }\n\n    inProgress = true;\n    schedule();\n  };\n\n  jQuery.fx.stop = function () {\n    inProgress = null;\n  };\n\n  jQuery.fx.speeds = {\n    slow: 600,\n    fast: 200,\n    // Default speed\n    _default: 400\n  }; // Based off of the plugin by Clint Helfers, with permission.\n\n  jQuery.fn.delay = function (time, type) {\n    time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n    type = type || \"fx\";\n    return this.queue(type, function (next, hooks) {\n      var timeout = window.setTimeout(next, time);\n\n      hooks.stop = function () {\n        window.clearTimeout(timeout);\n      };\n    });\n  };\n\n  (function () {\n    var input = document.createElement(\"input\"),\n        select = document.createElement(\"select\"),\n        opt = select.appendChild(document.createElement(\"option\"));\n    input.type = \"checkbox\"; // Support: Android <=4.3 only\n    // Default value for a checkbox should be \"on\"\n\n    support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n    // Must access selectedIndex to make default options select\n\n    support.optSelected = opt.selected; // Support: IE <=11 only\n    // An input loses its value after becoming a radio\n\n    input = document.createElement(\"input\");\n    input.value = \"t\";\n    input.type = \"radio\";\n    support.radioValue = input.value === \"t\";\n  })();\n\n  var boolHook,\n      attrHandle = jQuery.expr.attrHandle;\n  jQuery.fn.extend({\n    attr: function attr(name, value) {\n      return access(this, jQuery.attr, name, value, arguments.length > 1);\n    },\n    removeAttr: function removeAttr(name) {\n      return this.each(function () {\n        jQuery.removeAttr(this, name);\n      });\n    }\n  });\n  jQuery.extend({\n    attr: function attr(elem, name, value) {\n      var ret,\n          hooks,\n          nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n      if (nType === 3 || nType === 8 || nType === 2) {\n        return;\n      } // Fallback to prop when attributes are not supported\n\n\n      if (typeof elem.getAttribute === \"undefined\") {\n        return jQuery.prop(elem, name, value);\n      } // Attribute hooks are determined by the lowercase version\n      // Grab necessary hook if one is defined\n\n\n      if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n        hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n      }\n\n      if (value !== undefined) {\n        if (value === null) {\n          jQuery.removeAttr(elem, name);\n          return;\n        }\n\n        if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n          return ret;\n        }\n\n        elem.setAttribute(name, value + \"\");\n        return value;\n      }\n\n      if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n        return ret;\n      }\n\n      ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n      return ret == null ? undefined : ret;\n    },\n    attrHooks: {\n      type: {\n        set: function set(elem, value) {\n          if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n            var val = elem.value;\n            elem.setAttribute(\"type\", value);\n\n            if (val) {\n              elem.value = val;\n            }\n\n            return value;\n          }\n        }\n      }\n    },\n    removeAttr: function removeAttr(elem, value) {\n      var name,\n          i = 0,\n          // Attribute names can contain non-HTML whitespace characters\n      // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n      attrNames = value && value.match(rnothtmlwhite);\n\n      if (attrNames && elem.nodeType === 1) {\n        while (name = attrNames[i++]) {\n          elem.removeAttribute(name);\n        }\n      }\n    }\n  }); // Hooks for boolean attributes\n\n  boolHook = {\n    set: function set(elem, value, name) {\n      if (value === false) {\n        // Remove boolean attributes when set to false\n        jQuery.removeAttr(elem, name);\n      } else {\n        elem.setAttribute(name, name);\n      }\n\n      return name;\n    }\n  };\n  jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n    var getter = attrHandle[name] || jQuery.find.attr;\n\n    attrHandle[name] = function (elem, name, isXML) {\n      var ret,\n          handle,\n          lowercaseName = name.toLowerCase();\n\n      if (!isXML) {\n        // Avoid an infinite loop by temporarily removing this function from the getter\n        handle = attrHandle[lowercaseName];\n        attrHandle[lowercaseName] = ret;\n        ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n        attrHandle[lowercaseName] = handle;\n      }\n\n      return ret;\n    };\n  });\n  var rfocusable = /^(?:input|select|textarea|button)$/i,\n      rclickable = /^(?:a|area)$/i;\n  jQuery.fn.extend({\n    prop: function prop(name, value) {\n      return access(this, jQuery.prop, name, value, arguments.length > 1);\n    },\n    removeProp: function removeProp(name) {\n      return this.each(function () {\n        delete this[jQuery.propFix[name] || name];\n      });\n    }\n  });\n  jQuery.extend({\n    prop: function prop(elem, name, value) {\n      var ret,\n          hooks,\n          nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n      if (nType === 3 || nType === 8 || nType === 2) {\n        return;\n      }\n\n      if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n        // Fix name and attach hooks\n        name = jQuery.propFix[name] || name;\n        hooks = jQuery.propHooks[name];\n      }\n\n      if (value !== undefined) {\n        if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n          return ret;\n        }\n\n        return elem[name] = value;\n      }\n\n      if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n        return ret;\n      }\n\n      return elem[name];\n    },\n    propHooks: {\n      tabIndex: {\n        get: function get(elem) {\n          // Support: IE <=9 - 11 only\n          // elem.tabIndex doesn't always return the\n          // correct value when it hasn't been explicitly set\n          // Use proper attribute retrieval (trac-12072)\n          var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n          if (tabindex) {\n            return parseInt(tabindex, 10);\n          }\n\n          if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n            return 0;\n          }\n\n          return -1;\n        }\n      }\n    },\n    propFix: {\n      \"for\": \"htmlFor\",\n      \"class\": \"className\"\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\n\n  if (!support.optSelected) {\n    jQuery.propHooks.selected = {\n      get: function get(elem) {\n        /* eslint no-unused-expressions: \"off\" */\n        var parent = elem.parentNode;\n\n        if (parent && parent.parentNode) {\n          parent.parentNode.selectedIndex;\n        }\n\n        return null;\n      },\n      set: function set(elem) {\n        /* eslint no-unused-expressions: \"off\" */\n        var parent = elem.parentNode;\n\n        if (parent) {\n          parent.selectedIndex;\n\n          if (parent.parentNode) {\n            parent.parentNode.selectedIndex;\n          }\n        }\n      }\n    };\n  }\n\n  jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n    jQuery.propFix[this.toLowerCase()] = this;\n  }); // Strip and collapse whitespace according to HTML spec\n  // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n  function stripAndCollapse(value) {\n    var tokens = value.match(rnothtmlwhite) || [];\n    return tokens.join(\" \");\n  }\n\n  function getClass(elem) {\n    return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n  }\n\n  function classesToArray(value) {\n    if (Array.isArray(value)) {\n      return value;\n    }\n\n    if (typeof value === \"string\") {\n      return value.match(rnothtmlwhite) || [];\n    }\n\n    return [];\n  }\n\n  jQuery.fn.extend({\n    addClass: function addClass(value) {\n      var classNames, cur, curValue, className, i, finalValue;\n\n      if (isFunction(value)) {\n        return this.each(function (j) {\n          jQuery(this).addClass(value.call(this, j, getClass(this)));\n        });\n      }\n\n      classNames = classesToArray(value);\n\n      if (classNames.length) {\n        return this.each(function () {\n          curValue = getClass(this);\n          cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n          if (cur) {\n            for (i = 0; i < classNames.length; i++) {\n              className = classNames[i];\n\n              if (cur.indexOf(\" \" + className + \" \") < 0) {\n                cur += className + \" \";\n              }\n            } // Only assign if different to avoid unneeded rendering.\n\n\n            finalValue = stripAndCollapse(cur);\n\n            if (curValue !== finalValue) {\n              this.setAttribute(\"class\", finalValue);\n            }\n          }\n        });\n      }\n\n      return this;\n    },\n    removeClass: function removeClass(value) {\n      var classNames, cur, curValue, className, i, finalValue;\n\n      if (isFunction(value)) {\n        return this.each(function (j) {\n          jQuery(this).removeClass(value.call(this, j, getClass(this)));\n        });\n      }\n\n      if (!arguments.length) {\n        return this.attr(\"class\", \"\");\n      }\n\n      classNames = classesToArray(value);\n\n      if (classNames.length) {\n        return this.each(function () {\n          curValue = getClass(this); // This expression is here for better compressibility (see addClass)\n\n          cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n          if (cur) {\n            for (i = 0; i < classNames.length; i++) {\n              className = classNames[i]; // Remove *all* instances\n\n              while (cur.indexOf(\" \" + className + \" \") > -1) {\n                cur = cur.replace(\" \" + className + \" \", \" \");\n              }\n            } // Only assign if different to avoid unneeded rendering.\n\n\n            finalValue = stripAndCollapse(cur);\n\n            if (curValue !== finalValue) {\n              this.setAttribute(\"class\", finalValue);\n            }\n          }\n        });\n      }\n\n      return this;\n    },\n    toggleClass: function toggleClass(value, stateVal) {\n      var classNames,\n          className,\n          i,\n          self,\n          type = _typeof(value),\n          isValidValue = type === \"string\" || Array.isArray(value);\n\n      if (isFunction(value)) {\n        return this.each(function (i) {\n          jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n        });\n      }\n\n      if (typeof stateVal === \"boolean\" && isValidValue) {\n        return stateVal ? this.addClass(value) : this.removeClass(value);\n      }\n\n      classNames = classesToArray(value);\n      return this.each(function () {\n        if (isValidValue) {\n          // Toggle individual class names\n          self = jQuery(this);\n\n          for (i = 0; i < classNames.length; i++) {\n            className = classNames[i]; // Check each className given, space separated list\n\n            if (self.hasClass(className)) {\n              self.removeClass(className);\n            } else {\n              self.addClass(className);\n            }\n          } // Toggle whole class name\n\n        } else if (value === undefined || type === \"boolean\") {\n          className = getClass(this);\n\n          if (className) {\n            // Store className if set\n            dataPriv.set(this, \"__className__\", className);\n          } // If the element has a class name or if we're passed `false`,\n          // then remove the whole classname (if there was one, the above saved it).\n          // Otherwise bring back whatever was previously saved (if anything),\n          // falling back to the empty string if nothing was stored.\n\n\n          if (this.setAttribute) {\n            this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n          }\n        }\n      });\n    },\n    hasClass: function hasClass(selector) {\n      var className,\n          elem,\n          i = 0;\n      className = \" \" + selector + \" \";\n\n      while (elem = this[i++]) {\n        if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n          return true;\n        }\n      }\n\n      return false;\n    }\n  });\n  var rreturn = /\\r/g;\n  jQuery.fn.extend({\n    val: function val(value) {\n      var hooks,\n          ret,\n          valueIsFunction,\n          elem = this[0];\n\n      if (!arguments.length) {\n        if (elem) {\n          hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n          if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n            return ret;\n          }\n\n          ret = elem.value; // Handle most common string cases\n\n          if (typeof ret === \"string\") {\n            return ret.replace(rreturn, \"\");\n          } // Handle cases where value is null/undef or number\n\n\n          return ret == null ? \"\" : ret;\n        }\n\n        return;\n      }\n\n      valueIsFunction = isFunction(value);\n      return this.each(function (i) {\n        var val;\n\n        if (this.nodeType !== 1) {\n          return;\n        }\n\n        if (valueIsFunction) {\n          val = value.call(this, i, jQuery(this).val());\n        } else {\n          val = value;\n        } // Treat null/undefined as \"\"; convert numbers to string\n\n\n        if (val == null) {\n          val = \"\";\n        } else if (typeof val === \"number\") {\n          val += \"\";\n        } else if (Array.isArray(val)) {\n          val = jQuery.map(val, function (value) {\n            return value == null ? \"\" : value + \"\";\n          });\n        }\n\n        hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n        if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n          this.value = val;\n        }\n      });\n    }\n  });\n  jQuery.extend({\n    valHooks: {\n      option: {\n        get: function get(elem) {\n          var val = jQuery.find.attr(elem, \"value\");\n          return val != null ? val : // Support: IE <=10 - 11 only\n          // option.text throws exceptions (trac-14686, trac-14858)\n          // Strip and collapse whitespace\n          // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n          stripAndCollapse(jQuery.text(elem));\n        }\n      },\n      select: {\n        get: function get(elem) {\n          var value,\n              option,\n              i,\n              options = elem.options,\n              index = elem.selectedIndex,\n              one = elem.type === \"select-one\",\n              values = one ? null : [],\n              max = one ? index + 1 : options.length;\n\n          if (index < 0) {\n            i = max;\n          } else {\n            i = one ? index : 0;\n          } // Loop through all the selected options\n\n\n          for (; i < max; i++) {\n            option = options[i]; // Support: IE <=9 only\n            // IE8-9 doesn't update selected after form reset (trac-2551)\n\n            if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n            !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n              // Get the specific value for the option\n              value = jQuery(option).val(); // We don't need an array for one selects\n\n              if (one) {\n                return value;\n              } // Multi-Selects return an array\n\n\n              values.push(value);\n            }\n          }\n\n          return values;\n        },\n        set: function set(elem, value) {\n          var optionSet,\n              option,\n              options = elem.options,\n              values = jQuery.makeArray(value),\n              i = options.length;\n\n          while (i--) {\n            option = options[i];\n            /* eslint-disable no-cond-assign */\n\n            if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n              optionSet = true;\n            }\n            /* eslint-enable no-cond-assign */\n\n          } // Force browsers to behave consistently when non-matching value is set\n\n\n          if (!optionSet) {\n            elem.selectedIndex = -1;\n          }\n\n          return values;\n        }\n      }\n    }\n  }); // Radios and checkboxes getter/setter\n\n  jQuery.each([\"radio\", \"checkbox\"], function () {\n    jQuery.valHooks[this] = {\n      set: function set(elem, value) {\n        if (Array.isArray(value)) {\n          return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n        }\n      }\n    };\n\n    if (!support.checkOn) {\n      jQuery.valHooks[this].get = function (elem) {\n        return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n      };\n    }\n  }); // Return jQuery for attributes-only inclusion\n\n  support.focusin = \"onfocusin\" in window;\n\n  var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n      stopPropagationCallback = function stopPropagationCallback(e) {\n    e.stopPropagation();\n  };\n\n  jQuery.extend(jQuery.event, {\n    trigger: function trigger(event, data, elem, onlyHandlers) {\n      var i,\n          cur,\n          tmp,\n          bubbleType,\n          ontype,\n          handle,\n          special,\n          lastElement,\n          eventPath = [elem || document],\n          type = hasOwn.call(event, \"type\") ? event.type : event,\n          namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n      cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n      if (elem.nodeType === 3 || elem.nodeType === 8) {\n        return;\n      } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n      if (rfocusMorph.test(type + jQuery.event.triggered)) {\n        return;\n      }\n\n      if (type.indexOf(\".\") > -1) {\n        // Namespaced trigger; create a regexp to match event type in handle()\n        namespaces = type.split(\".\");\n        type = namespaces.shift();\n        namespaces.sort();\n      }\n\n      ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n      event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n      event.isTrigger = onlyHandlers ? 2 : 3;\n      event.namespace = namespaces.join(\".\");\n      event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n      event.result = undefined;\n\n      if (!event.target) {\n        event.target = elem;\n      } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n      data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n      special = jQuery.event.special[type] || {};\n\n      if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n        return;\n      } // Determine event propagation path in advance, per W3C events spec (trac-9951)\n      // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\n\n      if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n        bubbleType = special.delegateType || type;\n\n        if (!rfocusMorph.test(bubbleType + type)) {\n          cur = cur.parentNode;\n        }\n\n        for (; cur; cur = cur.parentNode) {\n          eventPath.push(cur);\n          tmp = cur;\n        } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n        if (tmp === (elem.ownerDocument || document)) {\n          eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n        }\n      } // Fire handlers on the event path\n\n\n      i = 0;\n\n      while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n        lastElement = cur;\n        event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n        handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n        if (handle) {\n          handle.apply(cur, data);\n        } // Native handler\n\n\n        handle = ontype && cur[ontype];\n\n        if (handle && handle.apply && acceptData(cur)) {\n          event.result = handle.apply(cur, data);\n\n          if (event.result === false) {\n            event.preventDefault();\n          }\n        }\n      }\n\n      event.type = type; // If nobody prevented the default action, do it now\n\n      if (!onlyHandlers && !event.isDefaultPrevented()) {\n        if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n          // Call a native DOM method on the target with the same name as the event.\n          // Don't do default actions on window, that's where global variables be (trac-6170)\n          if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n            // Don't re-trigger an onFOO event when we call its FOO() method\n            tmp = elem[ontype];\n\n            if (tmp) {\n              elem[ontype] = null;\n            } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n            jQuery.event.triggered = type;\n\n            if (event.isPropagationStopped()) {\n              lastElement.addEventListener(type, stopPropagationCallback);\n            }\n\n            elem[type]();\n\n            if (event.isPropagationStopped()) {\n              lastElement.removeEventListener(type, stopPropagationCallback);\n            }\n\n            jQuery.event.triggered = undefined;\n\n            if (tmp) {\n              elem[ontype] = tmp;\n            }\n          }\n        }\n      }\n\n      return event.result;\n    },\n    // Piggyback on a donor event to simulate a different one\n    // Used only for `focus(in | out)` events\n    simulate: function simulate(type, elem, event) {\n      var e = jQuery.extend(new jQuery.Event(), event, {\n        type: type,\n        isSimulated: true\n      });\n      jQuery.event.trigger(e, null, elem);\n    }\n  });\n  jQuery.fn.extend({\n    trigger: function trigger(type, data) {\n      return this.each(function () {\n        jQuery.event.trigger(type, data, this);\n      });\n    },\n    triggerHandler: function triggerHandler(type, data) {\n      var elem = this[0];\n\n      if (elem) {\n        return jQuery.event.trigger(type, data, elem, true);\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\n\n  if (!support.focusin) {\n    jQuery.each({\n      focus: \"focusin\",\n      blur: \"focusout\"\n    }, function (orig, fix) {\n      // Attach a single capturing handler on the document while someone wants focusin/focusout\n      var handler = function handler(event) {\n        jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n      };\n\n      jQuery.event.special[fix] = {\n        setup: function setup() {\n          // Handle: regular nodes (via `this.ownerDocument`), window\n          // (via `this.document`) & document (via `this`).\n          var doc = this.ownerDocument || this.document || this,\n              attaches = dataPriv.access(doc, fix);\n\n          if (!attaches) {\n            doc.addEventListener(orig, handler, true);\n          }\n\n          dataPriv.access(doc, fix, (attaches || 0) + 1);\n        },\n        teardown: function teardown() {\n          var doc = this.ownerDocument || this.document || this,\n              attaches = dataPriv.access(doc, fix) - 1;\n\n          if (!attaches) {\n            doc.removeEventListener(orig, handler, true);\n            dataPriv.remove(doc, fix);\n          } else {\n            dataPriv.access(doc, fix, attaches);\n          }\n        }\n      };\n    });\n  }\n\n  var location = window.location;\n  var nonce = {\n    guid: Date.now()\n  };\n  var rquery = /\\?/; // Cross-browser xml parsing\n\n  jQuery.parseXML = function (data) {\n    var xml, parserErrorElem;\n\n    if (!data || typeof data !== \"string\") {\n      return null;\n    } // Support: IE 9 - 11 only\n    // IE throws on parseFromString with invalid input.\n\n\n    try {\n      xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n    } catch (e) {}\n\n    parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n    if (!xml || parserErrorElem) {\n      jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n        return el.textContent;\n      }).join(\"\\n\") : data));\n    }\n\n    return xml;\n  };\n\n  var rbracket = /\\[\\]$/,\n      rCRLF = /\\r?\\n/g,\n      rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n      rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n  function buildParams(prefix, obj, traditional, add) {\n    var name;\n\n    if (Array.isArray(obj)) {\n      // Serialize array item.\n      jQuery.each(obj, function (i, v) {\n        if (traditional || rbracket.test(prefix)) {\n          // Treat each array item as a scalar.\n          add(prefix, v);\n        } else {\n          // Item is non-scalar (array or object), encode its numeric index.\n          buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n        }\n      });\n    } else if (!traditional && toType(obj) === \"object\") {\n      // Serialize object item.\n      for (name in obj) {\n        buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n      }\n    } else {\n      // Serialize scalar item.\n      add(prefix, obj);\n    }\n  } // Serialize an array of form elements or a set of\n  // key/values into a query string\n\n\n  jQuery.param = function (a, traditional) {\n    var prefix,\n        s = [],\n        add = function add(key, valueOrFunction) {\n      // If value is a function, invoke it and use its return value\n      var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n      s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n    };\n\n    if (a == null) {\n      return \"\";\n    } // If an array was passed in, assume that it is an array of form elements.\n\n\n    if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n      // Serialize the form elements\n      jQuery.each(a, function () {\n        add(this.name, this.value);\n      });\n    } else {\n      // If traditional, encode the \"old\" way (the way 1.3.2 or older\n      // did it), otherwise encode params recursively.\n      for (prefix in a) {\n        buildParams(prefix, a[prefix], traditional, add);\n      }\n    } // Return the resulting serialization\n\n\n    return s.join(\"&\");\n  };\n\n  jQuery.fn.extend({\n    serialize: function serialize() {\n      return jQuery.param(this.serializeArray());\n    },\n    serializeArray: function serializeArray() {\n      return this.map(function () {\n        // Can add propHook for \"elements\" to filter or add form elements\n        var elements = jQuery.prop(this, \"elements\");\n        return elements ? jQuery.makeArray(elements) : this;\n      }).filter(function () {\n        var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n        return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n      }).map(function (_i, elem) {\n        var val = jQuery(this).val();\n\n        if (val == null) {\n          return null;\n        }\n\n        if (Array.isArray(val)) {\n          return jQuery.map(val, function (val) {\n            return {\n              name: elem.name,\n              value: val.replace(rCRLF, \"\\r\\n\")\n            };\n          });\n        }\n\n        return {\n          name: elem.name,\n          value: val.replace(rCRLF, \"\\r\\n\")\n        };\n      }).get();\n    }\n  });\n  var r20 = /%20/g,\n      rhash = /#.*$/,\n      rantiCache = /([?&])_=[^&]*/,\n      rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n      // trac-7653, trac-8125, trac-8152: local protocol detection\n  rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n      rnoContent = /^(?:GET|HEAD)$/,\n      rprotocol = /^\\/\\//,\n\n  /* Prefilters\n   * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n   * 2) These are called:\n   *    - BEFORE asking for a transport\n   *    - AFTER param serialization (s.data is a string if s.processData is true)\n   * 3) key is the dataType\n   * 4) the catchall symbol \"*\" can be used\n   * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n   */\n  prefilters = {},\n\n  /* Transports bindings\n   * 1) key is the dataType\n   * 2) the catchall symbol \"*\" can be used\n   * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n   */\n  transports = {},\n      // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n  allTypes = \"*/\".concat(\"*\"),\n      // Anchor tag for parsing the document origin\n  originAnchor = document.createElement(\"a\");\n  originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n  function addToPrefiltersOrTransports(structure) {\n    // dataTypeExpression is optional and defaults to \"*\"\n    return function (dataTypeExpression, func) {\n      if (typeof dataTypeExpression !== \"string\") {\n        func = dataTypeExpression;\n        dataTypeExpression = \"*\";\n      }\n\n      var dataType,\n          i = 0,\n          dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n      if (isFunction(func)) {\n        // For each dataType in the dataTypeExpression\n        while (dataType = dataTypes[i++]) {\n          // Prepend if requested\n          if (dataType[0] === \"+\") {\n            dataType = dataType.slice(1) || \"*\";\n            (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n          } else {\n            (structure[dataType] = structure[dataType] || []).push(func);\n          }\n        }\n      }\n    };\n  } // Base inspection function for prefilters and transports\n\n\n  function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n    var inspected = {},\n        seekingTransport = structure === transports;\n\n    function inspect(dataType) {\n      var selected;\n      inspected[dataType] = true;\n      jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n        var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n        if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n          options.dataTypes.unshift(dataTypeOrTransport);\n          inspect(dataTypeOrTransport);\n          return false;\n        } else if (seekingTransport) {\n          return !(selected = dataTypeOrTransport);\n        }\n      });\n      return selected;\n    }\n\n    return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n  } // A special extend for ajax options\n  // that takes \"flat\" options (not to be deep extended)\n  // Fixes trac-9887\n\n\n  function ajaxExtend(target, src) {\n    var key,\n        deep,\n        flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n    for (key in src) {\n      if (src[key] !== undefined) {\n        (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n      }\n    }\n\n    if (deep) {\n      jQuery.extend(true, target, deep);\n    }\n\n    return target;\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   */\n\n\n  function ajaxHandleResponses(s, jqXHR, responses) {\n    var ct,\n        type,\n        finalDataType,\n        firstDataType,\n        contents = s.contents,\n        dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n    while (dataTypes[0] === \"*\") {\n      dataTypes.shift();\n\n      if (ct === undefined) {\n        ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n      }\n    } // Check if we're dealing with a known content-type\n\n\n    if (ct) {\n      for (type in contents) {\n        if (contents[type] && contents[type].test(ct)) {\n          dataTypes.unshift(type);\n          break;\n        }\n      }\n    } // Check to see if we have a response for the expected dataType\n\n\n    if (dataTypes[0] in responses) {\n      finalDataType = dataTypes[0];\n    } else {\n      // Try convertible dataTypes\n      for (type in responses) {\n        if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n          finalDataType = type;\n          break;\n        }\n\n        if (!firstDataType) {\n          firstDataType = type;\n        }\n      } // Or just use first one\n\n\n      finalDataType = finalDataType || firstDataType;\n    } // If we found a dataType\n    // We add the dataType to the list if needed\n    // and return the corresponding response\n\n\n    if (finalDataType) {\n      if (finalDataType !== dataTypes[0]) {\n        dataTypes.unshift(finalDataType);\n      }\n\n      return responses[finalDataType];\n    }\n  }\n  /* Chain conversions given the request and the original response\n   * Also sets the responseXXX fields on the jqXHR instance\n   */\n\n\n  function ajaxConvert(s, response, jqXHR, isSuccess) {\n    var conv2,\n        current,\n        conv,\n        tmp,\n        prev,\n        converters = {},\n        // Work with a copy of dataTypes in case we need to modify it for conversion\n    dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n    if (dataTypes[1]) {\n      for (conv in s.converters) {\n        converters[conv.toLowerCase()] = s.converters[conv];\n      }\n    }\n\n    current = dataTypes.shift(); // Convert to each sequential dataType\n\n    while (current) {\n      if (s.responseFields[current]) {\n        jqXHR[s.responseFields[current]] = response;\n      } // Apply the dataFilter if provided\n\n\n      if (!prev && isSuccess && s.dataFilter) {\n        response = s.dataFilter(response, s.dataType);\n      }\n\n      prev = current;\n      current = dataTypes.shift();\n\n      if (current) {\n        // There's only work to do if current dataType is non-auto\n        if (current === \"*\") {\n          current = prev; // Convert response if prev dataType is non-auto and differs from current\n        } else if (prev !== \"*\" && prev !== current) {\n          // Seek a direct converter\n          conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n          if (!conv) {\n            for (conv2 in converters) {\n              // If conv2 outputs current\n              tmp = conv2.split(\" \");\n\n              if (tmp[1] === current) {\n                // If prev can be converted to accepted input\n                conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n                if (conv) {\n                  // Condense equivalence converters\n                  if (conv === true) {\n                    conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n                  } else if (converters[conv2] !== true) {\n                    current = tmp[0];\n                    dataTypes.unshift(tmp[1]);\n                  }\n\n                  break;\n                }\n              }\n            }\n          } // Apply converter (if not an equivalence)\n\n\n          if (conv !== true) {\n            // Unless errors are allowed to bubble, catch and return them\n            if (conv && s.throws) {\n              response = conv(response);\n            } else {\n              try {\n                response = conv(response);\n              } catch (e) {\n                return {\n                  state: \"parsererror\",\n                  error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n                };\n              }\n            }\n          }\n        }\n      }\n    }\n\n    return {\n      state: \"success\",\n      data: response\n    };\n  }\n\n  jQuery.extend({\n    // Counter for holding the number of active queries\n    active: 0,\n    // Last-Modified header cache for next request\n    lastModified: {},\n    etag: {},\n    ajaxSettings: {\n      url: location.href,\n      type: \"GET\",\n      isLocal: rlocalProtocol.test(location.protocol),\n      global: true,\n      processData: true,\n      async: true,\n      contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n      /*\n      timeout: 0,\n      data: null,\n      dataType: null,\n      username: null,\n      password: null,\n      cache: null,\n      throws: false,\n      traditional: false,\n      headers: {},\n      */\n      accepts: {\n        \"*\": allTypes,\n        text: \"text/plain\",\n        html: \"text/html\",\n        xml: \"application/xml, text/xml\",\n        json: \"application/json, text/javascript\"\n      },\n      contents: {\n        xml: /\\bxml\\b/,\n        html: /\\bhtml/,\n        json: /\\bjson\\b/\n      },\n      responseFields: {\n        xml: \"responseXML\",\n        text: \"responseText\",\n        json: \"responseJSON\"\n      },\n      // Data converters\n      // Keys separate source (or catchall \"*\") and destination types with a single space\n      converters: {\n        // Convert anything to text\n        \"* text\": String,\n        // Text to html (true = no transformation)\n        \"text html\": true,\n        // Evaluate text as a json expression\n        \"text json\": JSON.parse,\n        // Parse text as xml\n        \"text xml\": jQuery.parseXML\n      },\n      // For options that shouldn't be deep extended:\n      // you can add your own custom options here if\n      // and when you create one that shouldn't be\n      // deep extended (see ajaxExtend)\n      flatOptions: {\n        url: true,\n        context: true\n      }\n    },\n    // Creates a full fledged settings object into target\n    // with both ajaxSettings and settings fields.\n    // If target is omitted, writes into ajaxSettings.\n    ajaxSetup: function ajaxSetup(target, settings) {\n      return settings ? // Building a settings object\n      ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n      ajaxExtend(jQuery.ajaxSettings, target);\n    },\n    ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n    ajaxTransport: addToPrefiltersOrTransports(transports),\n    // Main method\n    ajax: function ajax(url, options) {\n      // If url is an object, simulate pre-1.5 signature\n      if (_typeof(url) === \"object\") {\n        options = url;\n        url = undefined;\n      } // Force options to be an object\n\n\n      options = options || {};\n\n      var transport,\n          // URL without anti-cache param\n      cacheURL,\n          // Response headers\n      responseHeadersString,\n          responseHeaders,\n          // timeout handle\n      timeoutTimer,\n          // Url cleanup var\n      urlAnchor,\n          // Request state (becomes false upon send and true upon completion)\n      completed,\n          // To know if global events are to be dispatched\n      fireGlobals,\n          // Loop variable\n      i,\n          // uncached part of the url\n      uncached,\n          // Create the final options object\n      s = jQuery.ajaxSetup({}, options),\n          // Callbacks context\n      callbackContext = s.context || s,\n          // Context for global events is callbackContext if it is a DOM node or jQuery collection\n      globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n          // Deferreds\n      deferred = jQuery.Deferred(),\n          completeDeferred = jQuery.Callbacks(\"once memory\"),\n          // Status-dependent callbacks\n      _statusCode = s.statusCode || {},\n          // Headers (they are sent all at once)\n      requestHeaders = {},\n          requestHeadersNames = {},\n          // Default abort message\n      strAbort = \"canceled\",\n          // Fake xhr\n      jqXHR = {\n        readyState: 0,\n        // Builds headers hashtable if needed\n        getResponseHeader: function getResponseHeader(key) {\n          var match;\n\n          if (completed) {\n            if (!responseHeaders) {\n              responseHeaders = {};\n\n              while (match = rheaders.exec(responseHeadersString)) {\n                responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n              }\n            }\n\n            match = responseHeaders[key.toLowerCase() + \" \"];\n          }\n\n          return match == null ? null : match.join(\", \");\n        },\n        // Raw string\n        getAllResponseHeaders: function getAllResponseHeaders() {\n          return completed ? responseHeadersString : null;\n        },\n        // Caches the header\n        setRequestHeader: function setRequestHeader(name, value) {\n          if (completed == null) {\n            name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n            requestHeaders[name] = value;\n          }\n\n          return this;\n        },\n        // Overrides response content-type header\n        overrideMimeType: function overrideMimeType(type) {\n          if (completed == null) {\n            s.mimeType = type;\n          }\n\n          return this;\n        },\n        // Status-dependent callbacks\n        statusCode: function statusCode(map) {\n          var code;\n\n          if (map) {\n            if (completed) {\n              // Execute the appropriate callbacks\n              jqXHR.always(map[jqXHR.status]);\n            } else {\n              // Lazy-add the new callbacks in a way that preserves old ones\n              for (code in map) {\n                _statusCode[code] = [_statusCode[code], map[code]];\n              }\n            }\n          }\n\n          return this;\n        },\n        // Cancel the request\n        abort: function abort(statusText) {\n          var finalText = statusText || strAbort;\n\n          if (transport) {\n            transport.abort(finalText);\n          }\n\n          done(0, finalText);\n          return this;\n        }\n      }; // Attach deferreds\n\n\n      deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n      // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n      // We also use the url parameter if available\n\n      s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket trac-12004\n\n      s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n      s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n      if (s.crossDomain == null) {\n        urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n        // IE throws exception on accessing the href property if url is malformed,\n        // e.g. http://example.com:80x/\n\n        try {\n          urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n          // Anchor's host property isn't correctly set when s.url is relative\n\n          urlAnchor.href = urlAnchor.href;\n          s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n        } catch (e) {\n          // If there is an error parsing the URL, assume it is crossDomain,\n          // it can be rejected by the transport if it is invalid\n          s.crossDomain = true;\n        }\n      } // Convert data if not already a string\n\n\n      if (s.data && s.processData && typeof s.data !== \"string\") {\n        s.data = jQuery.param(s.data, s.traditional);\n      } // Apply prefilters\n\n\n      inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n      if (completed) {\n        return jqXHR;\n      } // We can fire global events as of now if asked to\n      // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\n\n      fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n      if (fireGlobals && jQuery.active++ === 0) {\n        jQuery.event.trigger(\"ajaxStart\");\n      } // Uppercase the type\n\n\n      s.type = s.type.toUpperCase(); // Determine if request has content\n\n      s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n      // and/or If-None-Match header later on\n      // Remove hash to simplify url manipulation\n\n      cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n      if (!s.hasContent) {\n        // Remember the hash so we can put it back\n        uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n        if (s.data && (s.processData || typeof s.data === \"string\")) {\n          cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // trac-9682: remove data so that it's not used in an eventual retry\n\n          delete s.data;\n        } // Add or update anti-cache param if needed\n\n\n        if (s.cache === false) {\n          cacheURL = cacheURL.replace(rantiCache, \"$1\");\n          uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n        } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n        s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n      } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n        s.data = s.data.replace(r20, \"+\");\n      } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n      if (s.ifModified) {\n        if (jQuery.lastModified[cacheURL]) {\n          jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n        }\n\n        if (jQuery.etag[cacheURL]) {\n          jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n        }\n      } // Set the correct header, if data is being sent\n\n\n      if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n        jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n      } // Set the Accepts header for the server, depending on the dataType\n\n\n      jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n      for (i in s.headers) {\n        jqXHR.setRequestHeader(i, s.headers[i]);\n      } // Allow custom headers/mimetypes and early abort\n\n\n      if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n        // Abort if not done already and return\n        return jqXHR.abort();\n      } // Aborting is no longer a cancellation\n\n\n      strAbort = \"abort\"; // Install callbacks on deferreds\n\n      completeDeferred.add(s.complete);\n      jqXHR.done(s.success);\n      jqXHR.fail(s.error); // Get transport\n\n      transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n      if (!transport) {\n        done(-1, \"No Transport\");\n      } else {\n        jqXHR.readyState = 1; // Send global event\n\n        if (fireGlobals) {\n          globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n        } // If request was aborted inside ajaxSend, stop there\n\n\n        if (completed) {\n          return jqXHR;\n        } // Timeout\n\n\n        if (s.async && s.timeout > 0) {\n          timeoutTimer = window.setTimeout(function () {\n            jqXHR.abort(\"timeout\");\n          }, s.timeout);\n        }\n\n        try {\n          completed = false;\n          transport.send(requestHeaders, done);\n        } catch (e) {\n          // Rethrow post-completion exceptions\n          if (completed) {\n            throw e;\n          } // Propagate others as results\n\n\n          done(-1, e);\n        }\n      } // Callback for when everything is done\n\n\n      function done(status, nativeStatusText, responses, headers) {\n        var isSuccess,\n            success,\n            error,\n            response,\n            modified,\n            statusText = nativeStatusText; // Ignore repeat invocations\n\n        if (completed) {\n          return;\n        }\n\n        completed = true; // Clear timeout if it exists\n\n        if (timeoutTimer) {\n          window.clearTimeout(timeoutTimer);\n        } // Dereference transport for early garbage collection\n        // (no matter how long the jqXHR object will be used)\n\n\n        transport = undefined; // Cache response headers\n\n        responseHeadersString = headers || \"\"; // Set readyState\n\n        jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n        isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n        if (responses) {\n          response = ajaxHandleResponses(s, jqXHR, responses);\n        } // Use a noop converter for missing script but not if jsonp\n\n\n        if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n          s.converters[\"text script\"] = function () {};\n        } // Convert no matter what (that way responseXXX fields are always set)\n\n\n        response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n        if (isSuccess) {\n          // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n          if (s.ifModified) {\n            modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n            if (modified) {\n              jQuery.lastModified[cacheURL] = modified;\n            }\n\n            modified = jqXHR.getResponseHeader(\"etag\");\n\n            if (modified) {\n              jQuery.etag[cacheURL] = modified;\n            }\n          } // if no content\n\n\n          if (status === 204 || s.type === \"HEAD\") {\n            statusText = \"nocontent\"; // if not modified\n          } else if (status === 304) {\n            statusText = \"notmodified\"; // If we have data, let's convert it\n          } else {\n            statusText = response.state;\n            success = response.data;\n            error = response.error;\n            isSuccess = !error;\n          }\n        } else {\n          // Extract error from statusText and normalize for non-aborts\n          error = statusText;\n\n          if (status || !statusText) {\n            statusText = \"error\";\n\n            if (status < 0) {\n              status = 0;\n            }\n          }\n        } // Set data for the fake xhr object\n\n\n        jqXHR.status = status;\n        jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n        if (isSuccess) {\n          deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n        } else {\n          deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n        } // Status-dependent callbacks\n\n\n        jqXHR.statusCode(_statusCode);\n        _statusCode = undefined;\n\n        if (fireGlobals) {\n          globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n        } // Complete\n\n\n        completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n        if (fireGlobals) {\n          globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n          if (! --jQuery.active) {\n            jQuery.event.trigger(\"ajaxStop\");\n          }\n        }\n      }\n\n      return jqXHR;\n    },\n    getJSON: function getJSON(url, data, callback) {\n      return jQuery.get(url, data, callback, \"json\");\n    },\n    getScript: function getScript(url, callback) {\n      return jQuery.get(url, undefined, callback, \"script\");\n    }\n  });\n  jQuery.each([\"get\", \"post\"], function (_i, method) {\n    jQuery[method] = function (url, data, callback, type) {\n      // Shift arguments if data argument was omitted\n      if (isFunction(data)) {\n        type = type || callback;\n        callback = data;\n        data = undefined;\n      } // The url can be an options object (which then must have .url)\n\n\n      return jQuery.ajax(jQuery.extend({\n        url: url,\n        type: method,\n        dataType: type,\n        data: data,\n        success: callback\n      }, jQuery.isPlainObject(url) && url));\n    };\n  });\n  jQuery.ajaxPrefilter(function (s) {\n    var i;\n\n    for (i in s.headers) {\n      if (i.toLowerCase() === \"content-type\") {\n        s.contentType = s.headers[i] || \"\";\n      }\n    }\n  });\n\n  jQuery._evalUrl = function (url, options, doc) {\n    return jQuery.ajax({\n      url: url,\n      // Make this explicit, since user can override this through ajaxSetup (trac-11264)\n      type: \"GET\",\n      dataType: \"script\",\n      cache: true,\n      async: false,\n      global: false,\n      // Only evaluate the response if it is successful (gh-4126)\n      // dataFilter is not invoked for failure responses, so using it instead\n      // of the default converter is kludgy but it works.\n      converters: {\n        \"text script\": function textScript() {}\n      },\n      dataFilter: function dataFilter(response) {\n        jQuery.globalEval(response, options, doc);\n      }\n    });\n  };\n\n  jQuery.fn.extend({\n    wrapAll: function wrapAll(html) {\n      var wrap;\n\n      if (this[0]) {\n        if (isFunction(html)) {\n          html = html.call(this[0]);\n        } // The elements to wrap the target around\n\n\n        wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n        if (this[0].parentNode) {\n          wrap.insertBefore(this[0]);\n        }\n\n        wrap.map(function () {\n          var elem = this;\n\n          while (elem.firstElementChild) {\n            elem = elem.firstElementChild;\n          }\n\n          return elem;\n        }).append(this);\n      }\n\n      return this;\n    },\n    wrapInner: function wrapInner(html) {\n      if (isFunction(html)) {\n        return this.each(function (i) {\n          jQuery(this).wrapInner(html.call(this, i));\n        });\n      }\n\n      return this.each(function () {\n        var self = jQuery(this),\n            contents = self.contents();\n\n        if (contents.length) {\n          contents.wrapAll(html);\n        } else {\n          self.append(html);\n        }\n      });\n    },\n    wrap: function wrap(html) {\n      var htmlIsFunction = isFunction(html);\n      return this.each(function (i) {\n        jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n      });\n    },\n    unwrap: function unwrap(selector) {\n      this.parent(selector).not(\"body\").each(function () {\n        jQuery(this).replaceWith(this.childNodes);\n      });\n      return this;\n    }\n  });\n\n  jQuery.expr.pseudos.hidden = function (elem) {\n    return !jQuery.expr.pseudos.visible(elem);\n  };\n\n  jQuery.expr.pseudos.visible = function (elem) {\n    return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n  };\n\n  jQuery.ajaxSettings.xhr = function () {\n    try {\n      return new window.XMLHttpRequest();\n    } catch (e) {}\n  };\n\n  var xhrSuccessStatus = {\n    // File protocol always yields status code 0, assume 200\n    0: 200,\n    // Support: IE <=9 only\n    // trac-1450: sometimes IE returns 1223 when it should be 204\n    1223: 204\n  },\n      xhrSupported = jQuery.ajaxSettings.xhr();\n  support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n  support.ajax = xhrSupported = !!xhrSupported;\n  jQuery.ajaxTransport(function (options) {\n    var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n    if (support.cors || xhrSupported && !options.crossDomain) {\n      return {\n        send: function send(headers, complete) {\n          var i,\n              xhr = options.xhr();\n          xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n          if (options.xhrFields) {\n            for (i in options.xhrFields) {\n              xhr[i] = options.xhrFields[i];\n            }\n          } // Override mime type if needed\n\n\n          if (options.mimeType && xhr.overrideMimeType) {\n            xhr.overrideMimeType(options.mimeType);\n          } // X-Requested-With header\n          // For cross-domain requests, seeing as conditions for a preflight are\n          // akin to a jigsaw puzzle, we simply never set it to be sure.\n          // (it can always be set on a per-request basis or even using ajaxSetup)\n          // For same-domain requests, won't change header if already provided.\n\n\n          if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n            headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n          } // Set headers\n\n\n          for (i in headers) {\n            xhr.setRequestHeader(i, headers[i]);\n          } // Callback\n\n\n          _callback = function callback(type) {\n            return function () {\n              if (_callback) {\n                _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n                if (type === \"abort\") {\n                  xhr.abort();\n                } else if (type === \"error\") {\n                  // Support: IE <=9 only\n                  // On a manual native abort, IE9 throws\n                  // errors on any property access that is not readyState\n                  if (typeof xhr.status !== \"number\") {\n                    complete(0, \"error\");\n                  } else {\n                    complete( // File: protocol always yields status 0; see trac-8605, trac-14207\n                    xhr.status, xhr.statusText);\n                  }\n                } else {\n                  complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n                  // IE9 has no XHR2 but throws on binary (trac-11426)\n                  // For XHR2 non-text, let the caller handle it (gh-2498)\n                  (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n                    binary: xhr.response\n                  } : {\n                    text: xhr.responseText\n                  }, xhr.getAllResponseHeaders());\n                }\n              }\n            };\n          }; // Listen to events\n\n\n          xhr.onload = _callback();\n          errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n          // Use onreadystatechange to replace onabort\n          // to handle uncaught aborts\n\n          if (xhr.onabort !== undefined) {\n            xhr.onabort = errorCallback;\n          } else {\n            xhr.onreadystatechange = function () {\n              // Check readyState before timeout as it changes\n              if (xhr.readyState === 4) {\n                // Allow onerror to be called first,\n                // but that will not handle a native abort\n                // Also, save errorCallback to a variable\n                // as xhr.onerror cannot be accessed\n                window.setTimeout(function () {\n                  if (_callback) {\n                    errorCallback();\n                  }\n                });\n              }\n            };\n          } // Create the abort callback\n\n\n          _callback = _callback(\"abort\");\n\n          try {\n            // Do send the request (this may raise an exception)\n            xhr.send(options.hasContent && options.data || null);\n          } catch (e) {\n            // trac-14683: Only rethrow if this hasn't been notified as an error yet\n            if (_callback) {\n              throw e;\n            }\n          }\n        },\n        abort: function abort() {\n          if (_callback) {\n            _callback();\n          }\n        }\n      };\n    }\n  }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n  jQuery.ajaxPrefilter(function (s) {\n    if (s.crossDomain) {\n      s.contents.script = false;\n    }\n  }); // Install script dataType\n\n  jQuery.ajaxSetup({\n    accepts: {\n      script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n    },\n    contents: {\n      script: /\\b(?:java|ecma)script\\b/\n    },\n    converters: {\n      \"text script\": function textScript(text) {\n        jQuery.globalEval(text);\n        return text;\n      }\n    }\n  }); // Handle cache's special case and crossDomain\n\n  jQuery.ajaxPrefilter(\"script\", function (s) {\n    if (s.cache === undefined) {\n      s.cache = false;\n    }\n\n    if (s.crossDomain) {\n      s.type = \"GET\";\n    }\n  }); // Bind script tag hack transport\n\n  jQuery.ajaxTransport(\"script\", function (s) {\n    // This transport only deals with cross domain or forced-by-attrs requests\n    if (s.crossDomain || s.scriptAttrs) {\n      var script, _callback2;\n\n      return {\n        send: function send(_, complete) {\n          script = jQuery(\"<script>\").attr(s.scriptAttrs || {}).prop({\n            charset: s.scriptCharset,\n            src: s.url\n          }).on(\"load error\", _callback2 = function callback(evt) {\n            script.remove();\n            _callback2 = null;\n\n            if (evt) {\n              complete(evt.type === \"error\" ? 404 : 200, evt.type);\n            }\n          }); // Use native DOM manipulation to avoid our domManip AJAX trickery\n\n          document.head.appendChild(script[0]);\n        },\n        abort: function abort() {\n          if (_callback2) {\n            _callback2();\n          }\n        }\n      };\n    }\n  });\n  var oldCallbacks = [],\n      rjsonp = /(=)\\?(?=&|$)|\\?\\?/; // Default jsonp settings\n\n  jQuery.ajaxSetup({\n    jsonp: \"callback\",\n    jsonpCallback: function jsonpCallback() {\n      var callback = oldCallbacks.pop() || jQuery.expando + \"_\" + nonce.guid++;\n      this[callback] = true;\n      return callback;\n    }\n  }); // Detect, normalize options and install callbacks for jsonp requests\n\n  jQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\n    var callbackName,\n        overwritten,\n        responseContainer,\n        jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? \"url\" : typeof s.data === \"string\" && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0 && rjsonp.test(s.data) && \"data\"); // Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\n    if (jsonProp || s.dataTypes[0] === \"jsonp\") {\n      // Get callback name, remembering preexisting value associated with it\n      callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback; // Insert callback into url or form data\n\n      if (jsonProp) {\n        s[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\n      } else if (s.jsonp !== false) {\n        s.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\n      } // Use data converter to retrieve json after script execution\n\n\n      s.converters[\"script json\"] = function () {\n        if (!responseContainer) {\n          jQuery.error(callbackName + \" was not called\");\n        }\n\n        return responseContainer[0];\n      }; // Force json dataType\n\n\n      s.dataTypes[0] = \"json\"; // Install callback\n\n      overwritten = window[callbackName];\n\n      window[callbackName] = function () {\n        responseContainer = arguments;\n      }; // Clean-up function (fires after converters)\n\n\n      jqXHR.always(function () {\n        // If previous value didn't exist - remove it\n        if (overwritten === undefined) {\n          jQuery(window).removeProp(callbackName); // Otherwise restore preexisting value\n        } else {\n          window[callbackName] = overwritten;\n        } // Save back as free\n\n\n        if (s[callbackName]) {\n          // Make sure that re-using the options doesn't screw things around\n          s.jsonpCallback = originalSettings.jsonpCallback; // Save the callback name for future use\n\n          oldCallbacks.push(callbackName);\n        } // Call if it was a function and we have a response\n\n\n        if (responseContainer && isFunction(overwritten)) {\n          overwritten(responseContainer[0]);\n        }\n\n        responseContainer = overwritten = undefined;\n      }); // Delegate to script\n\n      return \"script\";\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\n\n  support.createHTMLDocument = function () {\n    var body = document.implementation.createHTMLDocument(\"\").body;\n    body.innerHTML = \"<form></form><form></form>\";\n    return body.childNodes.length === 2;\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\n\n\n  jQuery.parseHTML = function (data, context, keepScripts) {\n    if (typeof data !== \"string\") {\n      return [];\n    }\n\n    if (typeof context === \"boolean\") {\n      keepScripts = context;\n      context = false;\n    }\n\n    var base, parsed, scripts;\n\n    if (!context) {\n      // Stop scripts or inline event handlers from being executed immediately\n      // by using document.implementation\n      if (support.createHTMLDocument) {\n        context = document.implementation.createHTMLDocument(\"\"); // Set the base href for the created document\n        // so any parsed elements with URLs\n        // are based on the document's URL (gh-2965)\n\n        base = context.createElement(\"base\");\n        base.href = document.location.href;\n        context.head.appendChild(base);\n      } else {\n        context = document;\n      }\n    }\n\n    parsed = rsingleTag.exec(data);\n    scripts = !keepScripts && []; // Single tag\n\n    if (parsed) {\n      return [context.createElement(parsed[1])];\n    }\n\n    parsed = buildFragment([data], context, scripts);\n\n    if (scripts && scripts.length) {\n      jQuery(scripts).remove();\n    }\n\n    return jQuery.merge([], parsed.childNodes);\n  };\n  /**\n   * Load a url into a page\n   */\n\n\n  jQuery.fn.load = function (url, params, callback) {\n    var selector,\n        type,\n        response,\n        self = this,\n        off = url.indexOf(\" \");\n\n    if (off > -1) {\n      selector = stripAndCollapse(url.slice(off));\n      url = url.slice(0, off);\n    } // If it's a function\n\n\n    if (isFunction(params)) {\n      // We assume that it's the callback\n      callback = params;\n      params = undefined; // Otherwise, build a param string\n    } else if (params && _typeof(params) === \"object\") {\n      type = \"POST\";\n    } // If we have elements to modify, make the request\n\n\n    if (self.length > 0) {\n      jQuery.ajax({\n        url: url,\n        // If \"type\" variable is undefined, then \"GET\" method will be used.\n        // Make value of this field explicit since\n        // user can override it through ajaxSetup method\n        type: type || \"GET\",\n        dataType: \"html\",\n        data: params\n      }).done(function (responseText) {\n        // Save response for use in complete callback\n        response = arguments;\n        self.html(selector ? // If a selector was specified, locate the right elements in a dummy div\n        // Exclude scripts to avoid IE 'Permission Denied' errors\n        jQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector) : // Otherwise use the full result\n        responseText); // If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n        // but they are ignored because response was set above.\n        // If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n      }).always(callback && function (jqXHR, status) {\n        self.each(function () {\n          callback.apply(this, response || [jqXHR.responseText, status, jqXHR]);\n        });\n      });\n    }\n\n    return this;\n  };\n\n  jQuery.expr.pseudos.animated = function (elem) {\n    return jQuery.grep(jQuery.timers, function (fn) {\n      return elem === fn.elem;\n    }).length;\n  };\n\n  jQuery.offset = {\n    setOffset: function setOffset(elem, options, i) {\n      var curPosition,\n          curLeft,\n          curCSSTop,\n          curTop,\n          curOffset,\n          curCSSLeft,\n          calculatePosition,\n          position = jQuery.css(elem, \"position\"),\n          curElem = jQuery(elem),\n          props = {}; // Set position first, in-case top/left are set even on static elem\n\n      if (position === \"static\") {\n        elem.style.position = \"relative\";\n      }\n\n      curOffset = curElem.offset();\n      curCSSTop = jQuery.css(elem, \"top\");\n      curCSSLeft = jQuery.css(elem, \"left\");\n      calculatePosition = (position === \"absolute\" || position === \"fixed\") && (curCSSTop + curCSSLeft).indexOf(\"auto\") > -1; // Need to be able to calculate position if either\n      // top or left is auto and position is either absolute or fixed\n\n      if (calculatePosition) {\n        curPosition = curElem.position();\n        curTop = curPosition.top;\n        curLeft = curPosition.left;\n      } else {\n        curTop = parseFloat(curCSSTop) || 0;\n        curLeft = parseFloat(curCSSLeft) || 0;\n      }\n\n      if (isFunction(options)) {\n        // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n        options = options.call(elem, i, jQuery.extend({}, curOffset));\n      }\n\n      if (options.top != null) {\n        props.top = options.top - curOffset.top + curTop;\n      }\n\n      if (options.left != null) {\n        props.left = options.left - curOffset.left + curLeft;\n      }\n\n      if (\"using\" in options) {\n        options.using.call(elem, props);\n      } else {\n        curElem.css(props);\n      }\n    }\n  };\n  jQuery.fn.extend({\n    // offset() relates an element's border box to the document origin\n    offset: function offset(options) {\n      // Preserve chaining for setter\n      if (arguments.length) {\n        return options === undefined ? this : this.each(function (i) {\n          jQuery.offset.setOffset(this, options, i);\n        });\n      }\n\n      var rect,\n          win,\n          elem = this[0];\n\n      if (!elem) {\n        return;\n      } // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n      // Support: IE <=11 only\n      // Running getBoundingClientRect on a\n      // disconnected node in IE throws an error\n\n\n      if (!elem.getClientRects().length) {\n        return {\n          top: 0,\n          left: 0\n        };\n      } // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\n\n      rect = elem.getBoundingClientRect();\n      win = elem.ownerDocument.defaultView;\n      return {\n        top: rect.top + win.pageYOffset,\n        left: rect.left + win.pageXOffset\n      };\n    },\n    // position() relates an element's margin box to its offset parent's padding box\n    // This corresponds to the behavior of CSS absolute positioning\n    position: function position() {\n      if (!this[0]) {\n        return;\n      }\n\n      var offsetParent,\n          offset,\n          doc,\n          elem = this[0],\n          parentOffset = {\n        top: 0,\n        left: 0\n      }; // position:fixed elements are offset from the viewport, which itself always has zero offset\n\n      if (jQuery.css(elem, \"position\") === \"fixed\") {\n        // Assume position:fixed implies availability of getBoundingClientRect\n        offset = elem.getBoundingClientRect();\n      } else {\n        offset = this.offset(); // Account for the *real* offset parent, which can be the document or its root element\n        // when a statically positioned element is identified\n\n        doc = elem.ownerDocument;\n        offsetParent = elem.offsetParent || doc.documentElement;\n\n        while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery.css(offsetParent, \"position\") === \"static\") {\n          offsetParent = offsetParent.parentNode;\n        }\n\n        if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\n          // Incorporate borders into its offset, since they are outside its content origin\n          parentOffset = jQuery(offsetParent).offset();\n          parentOffset.top += jQuery.css(offsetParent, \"borderTopWidth\", true);\n          parentOffset.left += jQuery.css(offsetParent, \"borderLeftWidth\", true);\n        }\n      } // Subtract parent offsets and element margins\n\n\n      return {\n        top: offset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\n        left: offset.left - parentOffset.left - jQuery.css(elem, \"marginLeft\", true)\n      };\n    },\n    // This method will return documentElement in the following cases:\n    // 1) For the element inside the iframe without offsetParent, this method will return\n    //    documentElement of the parent window\n    // 2) For the hidden or detached element\n    // 3) For body or html element, i.e. in case of the html node - it will return itself\n    //\n    // but those exceptions were never presented as a real life use-cases\n    // and might be considered as more preferable results.\n    //\n    // This logic, however, is not guaranteed and can change at any point in the future\n    offsetParent: function offsetParent() {\n      return this.map(function () {\n        var offsetParent = this.offsetParent;\n\n        while (offsetParent && jQuery.css(offsetParent, \"position\") === \"static\") {\n          offsetParent = offsetParent.offsetParent;\n        }\n\n        return offsetParent || documentElement;\n      });\n    }\n  }); // Create scrollLeft and scrollTop methods\n\n  jQuery.each({\n    scrollLeft: \"pageXOffset\",\n    scrollTop: \"pageYOffset\"\n  }, function (method, prop) {\n    var top = \"pageYOffset\" === prop;\n\n    jQuery.fn[method] = function (val) {\n      return access(this, function (elem, method, val) {\n        // Coalesce documents and windows\n        var win;\n\n        if (isWindow(elem)) {\n          win = elem;\n        } else if (elem.nodeType === 9) {\n          win = elem.defaultView;\n        }\n\n        if (val === undefined) {\n          return win ? win[prop] : elem[method];\n        }\n\n        if (win) {\n          win.scrollTo(!top ? val : win.pageXOffset, top ? val : win.pageYOffset);\n        } else {\n          elem[method] = val;\n        }\n      }, method, val, arguments.length);\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\n\n  jQuery.each([\"top\", \"left\"], function (_i, prop) {\n    jQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition, function (elem, computed) {\n      if (computed) {\n        computed = curCSS(elem, prop); // If curCSS returns percentage, fallback to offset\n\n        return rnumnonpx.test(computed) ? jQuery(elem).position()[prop] + \"px\" : computed;\n      }\n    });\n  }); // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\n\n  jQuery.each({\n    Height: \"height\",\n    Width: \"width\"\n  }, function (name, type) {\n    jQuery.each({\n      padding: \"inner\" + name,\n      content: type,\n      \"\": \"outer\" + name\n    }, function (defaultExtra, funcName) {\n      // Margin is only for outerHeight, outerWidth\n      jQuery.fn[funcName] = function (margin, value) {\n        var chainable = arguments.length && (defaultExtra || typeof margin !== \"boolean\"),\n            extra = defaultExtra || (margin === true || value === true ? \"margin\" : \"border\");\n        return access(this, function (elem, type, value) {\n          var doc;\n\n          if (isWindow(elem)) {\n            // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n            return funcName.indexOf(\"outer\") === 0 ? elem[\"inner\" + name] : elem.document.documentElement[\"client\" + name];\n          } // Get document width or height\n\n\n          if (elem.nodeType === 9) {\n            doc = elem.documentElement; // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n            // whichever is greatest\n\n            return Math.max(elem.body[\"scroll\" + name], doc[\"scroll\" + name], elem.body[\"offset\" + name], doc[\"offset\" + name], doc[\"client\" + name]);\n          }\n\n          return value === undefined ? // Get width or height on the element, requesting but not forcing parseFloat\n          jQuery.css(elem, type, extra) : // Set width or height on the element\n          jQuery.style(elem, type, value, extra);\n        }, type, chainable ? margin : undefined, chainable);\n      };\n    });\n  });\n  jQuery.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function (_i, type) {\n    jQuery.fn[type] = function (fn) {\n      return this.on(type, fn);\n    };\n  });\n  jQuery.fn.extend({\n    bind: function bind(types, data, fn) {\n      return this.on(types, null, data, fn);\n    },\n    unbind: function unbind(types, fn) {\n      return this.off(types, null, fn);\n    },\n    delegate: function delegate(selector, types, data, fn) {\n      return this.on(types, selector, data, fn);\n    },\n    undelegate: function undelegate(selector, types, fn) {\n      // ( namespace ) or ( selector, types [, fn] )\n      return arguments.length === 1 ? this.off(selector, \"**\") : this.off(types, selector || \"**\", fn);\n    },\n    hover: function hover(fnOver, fnOut) {\n      return this.mouseenter(fnOver).mouseleave(fnOut || fnOver);\n    }\n  });\n  jQuery.each((\"blur focus focusin focusout resize scroll click dblclick \" + \"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" + \"change select submit keydown keypress keyup contextmenu\").split(\" \"), function (_i, name) {\n    // Handle event binding\n    jQuery.fn[name] = function (data, fn) {\n      return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);\n    };\n  }); // Support: Android <=4.0 only\n  // Make sure we trim BOM and NBSP\n  // Require that the \"whitespace run\" starts from a non-whitespace\n  // to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\n\n  var rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g; // 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\n\n  jQuery.proxy = function (fn, context) {\n    var tmp, args, proxy;\n\n    if (typeof context === \"string\") {\n      tmp = fn[context];\n      context = fn;\n      fn = tmp;\n    } // Quick check to determine if target is callable, in the spec\n    // this throws a TypeError, but we will just return undefined.\n\n\n    if (!isFunction(fn)) {\n      return undefined;\n    } // Simulated bind\n\n\n    args = _slice.call(arguments, 2);\n\n    proxy = function proxy() {\n      return fn.apply(context || this, args.concat(_slice.call(arguments)));\n    }; // Set the guid of unique handler to the same of original handler, so it can be removed\n\n\n    proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n    return proxy;\n  };\n\n  jQuery.holdReady = function (hold) {\n    if (hold) {\n      jQuery.readyWait++;\n    } else {\n      jQuery.ready(true);\n    }\n  };\n\n  jQuery.isArray = Array.isArray;\n  jQuery.parseJSON = JSON.parse;\n  jQuery.nodeName = nodeName;\n  jQuery.isFunction = isFunction;\n  jQuery.isWindow = isWindow;\n  jQuery.camelCase = camelCase;\n  jQuery.type = toType;\n  jQuery.now = Date.now;\n\n  jQuery.isNumeric = function (obj) {\n    // As of jQuery 3.0, isNumeric is limited to\n    // strings and numbers (primitives or objects)\n    // that can be coerced to finite numbers (gh-2662)\n    var type = jQuery.type(obj);\n    return (type === \"number\" || type === \"string\") && // parseFloat NaNs numeric-cast false positives (\"\")\n    // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n    // subtraction forces infinities to NaN\n    !isNaN(obj - parseFloat(obj));\n  };\n\n  jQuery.trim = function (text) {\n    return text == null ? \"\" : (text + \"\").replace(rtrim, \"$1\");\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  // 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\n\n  if (typeof define === \"function\" && define.amd) {\n    define(\"jquery\", [], function () {\n      return jQuery;\n    });\n  }\n\n  var // Map over jQuery in case of overwrite\n  _jQuery = window.jQuery,\n      // Map over the $ in case of overwrite\n  _$ = window.$;\n\n  jQuery.noConflict = function (deep) {\n    if (window.$ === jQuery) {\n      window.$ = _$;\n    }\n\n    if (deep && window.jQuery === jQuery) {\n      window.jQuery = _jQuery;\n    }\n\n    return jQuery;\n  }; // Expose jQuery and $ identifiers, even in AMD\n  // (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n  // and CommonJS for browser emulators (trac-13566)\n\n\n  if (typeof noGlobal === \"undefined\") {\n    window.jQuery = window.$ = jQuery;\n  }\n\n  return jQuery;\n});","export function setWithCountAnimation(element, from, to){\n  const DURATION = 500\n  const startTime = Date.now()\n  const timer = setInterval(() => {\n    const elapsedTime = Date.now() - startTime\n    const progress = elapsedTime / DURATION\n\n    let value = 0;\n    if (progress < 1) {\n      value = Math.floor(from + progress * (to - from));\n    } else {\n      value = to\n      clearInterval(timer)\n    }\n    element.textContent = value.toLocaleString('ja-JP');\n    if (value < 0){\n      element.classList.add(\"minus-red\");\n    } else {\n      element.classList.remove(\"minus-red\");\n    }\n  }, 20)\n}\n\nexport function sanitizeMoney(value) {\n  let result = value\n  // 全角数字の変換\n  result = result.replace(/[0-9]/g, function(s) {\n    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);\n  });\n  // ハイフンやマイナス、カンマがある場合は削除する\n  \"-‐−‒—–―ーー─━一-,,\".split(\"\").forEach((hyphen) => {\n    result = result.replace(hyphen, \"\")\n  });\n\n  // 数値変換出来ない場合は0に置換\n  result = Number.isFinite(parseInt(result)) ? result : 0\n\n  // 100億以上はトリムする\n  if (result.length > 5) result = result.slice(0, 5)\n\n  return parseInt(result)\n}\n\nexport function delimitedMoney(money){\n  return sanitizeMoney(money).toLocaleString('ja-JP')\n}\n\nexport function updateDelimitedMoney(textFieldElement, automaticInput = true) {\n  // hidden fieldへのコピー\n  const hiddenElementId = textFieldElement.dataset.target;\n  const hiddenElement = document.getElementById(hiddenElementId);\n  hiddenElement.value = sanitizeMoney(textFieldElement.value);\n  if (automaticInput || textFieldElement.value != '') {\n    // サニタイズ&カンマ区切り\n    textFieldElement.value = delimitedMoney(textFieldElement.value);\n  }\n\n  // hidden fieldにchangeイベントを発生させる\n  const changeEvent = new Event(\"change\");\n  hiddenElement.dispatchEvent(changeEvent);\n}\n\n// 対応するtext fieldにカンマ区切りでセットする\nexport function setDelimitedMoney(hiddenElement) {\n  const inputElementId =  \"text_\" + hiddenElement.id;\n  const inputElement = document.getElementById(inputElementId);\n  inputElement.value = parseInt(hiddenElement.value).toLocaleString('ja-JP');\n}\n\n// レンダリング後にhidden fieldからtext fieldへの初期セット\n$(function() {\n  $(\".js-set-delimited-money\").each(function(){\n    if (this.value !== \"\") {\n      setDelimitedMoney(this);\n    }\n  });\n});\n\n// 数値計画の入力フォーム上でエンターを押してもサブミットしない\n$(function() {\n  $(\"#sogyo_suchi_form\").on(\"keypress\", function (event) {\n    var keyPressed = event.keyCode || event.which;\n    if (keyPressed === 13) {\n        event.preventDefault();\n        return false;\n    }\n  });\n});","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n  return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n  return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n  return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n  if (node == null) {\n    return window;\n  }\n\n  if (node.toString() !== '[object Window]') {\n    var ownerDocument = node.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView || window : window;\n  }\n\n  return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n  var OwnElement = getWindow(node).Element;\n  return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n  var OwnElement = getWindow(node).HTMLElement;\n  return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n  // IE 11 has no ShadowRoot\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n\n  var OwnElement = getWindow(node).ShadowRoot;\n  return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n  var state = _ref.state;\n  Object.keys(state.elements).forEach(function (name) {\n    var style = state.styles[name] || {};\n    var attributes = state.attributes[name] || {};\n    var element = state.elements[name]; // arrow is optional + virtual elements\n\n    if (!isHTMLElement(element) || !getNodeName(element)) {\n      return;\n    } // Flow doesn't support to extend this property, but it's the most\n    // effective way to apply styles to an HTMLElement\n    // $FlowFixMe[cannot-write]\n\n\n    Object.assign(element.style, style);\n    Object.keys(attributes).forEach(function (name) {\n      var value = attributes[name];\n\n      if (value === false) {\n        element.removeAttribute(name);\n      } else {\n        element.setAttribute(name, value === true ? '' : value);\n      }\n    });\n  });\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state;\n  var initialStyles = {\n    popper: {\n      position: state.options.strategy,\n      left: '0',\n      top: '0',\n      margin: '0'\n    },\n    arrow: {\n      position: 'absolute'\n    },\n    reference: {}\n  };\n  Object.assign(state.elements.popper.style, initialStyles.popper);\n  state.styles = initialStyles;\n\n  if (state.elements.arrow) {\n    Object.assign(state.elements.arrow.style, initialStyles.arrow);\n  }\n\n  return function () {\n    Object.keys(state.elements).forEach(function (name) {\n      var element = state.elements[name];\n      var attributes = state.attributes[name] || {};\n      var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n      var style = styleProperties.reduce(function (style, property) {\n        style[property] = '';\n        return style;\n      }, {}); // arrow is optional + virtual elements\n\n      if (!isHTMLElement(element) || !getNodeName(element)) {\n        return;\n      }\n\n      Object.assign(element.style, style);\n      Object.keys(attributes).forEach(function (attribute) {\n        element.removeAttribute(attribute);\n      });\n    });\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'applyStyles',\n  enabled: true,\n  phase: 'write',\n  fn: applyStyles,\n  effect: effect,\n  requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n  return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n  var uaData = navigator.userAgentData;\n\n  if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n    return uaData.brands.map(function (item) {\n      return item.brand + \"/\" + item.version;\n    }).join(' ');\n  }\n\n  return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n  return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n\n  var clientRect = element.getBoundingClientRect();\n  var scaleX = 1;\n  var scaleY = 1;\n\n  if (includeScale && isHTMLElement(element)) {\n    scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n    scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n  }\n\n  var _ref = isElement(element) ? getWindow(element) : window,\n      visualViewport = _ref.visualViewport;\n\n  var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n  var width = clientRect.width / scaleX;\n  var height = clientRect.height / scaleY;\n  return {\n    width: width,\n    height: height,\n    top: y,\n    right: x + width,\n    bottom: y + height,\n    left: x,\n    x: x,\n    y: y\n  };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n  var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n  // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n  var width = element.offsetWidth;\n  var height = element.offsetHeight;\n\n  if (Math.abs(clientRect.width - width) <= 1) {\n    width = clientRect.width;\n  }\n\n  if (Math.abs(clientRect.height - height) <= 1) {\n    height = clientRect.height;\n  }\n\n  return {\n    x: element.offsetLeft,\n    y: element.offsetTop,\n    width: width,\n    height: height\n  };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n  if (parent.contains(child)) {\n    return true;\n  } // then fallback to custom implementation with Shadow DOM support\n  else if (rootNode && isShadowRoot(rootNode)) {\n      var next = child;\n\n      do {\n        if (next && parent.isSameNode(next)) {\n          return true;\n        } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n        next = next.parentNode || next.host;\n      } while (next);\n    } // Give up, the result is false\n\n\n  return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n  return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n  // $FlowFixMe[incompatible-return]: assume body is always available\n  return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n  element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n  if (getNodeName(element) === 'html') {\n    return element;\n  }\n\n  return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n    // $FlowFixMe[incompatible-return]\n    // $FlowFixMe[prop-missing]\n    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n    element.parentNode || ( // DOM Element detected\n    isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n    // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n    getDocumentElement(element) // fallback\n\n  );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n  if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n  getComputedStyle(element).position === 'fixed') {\n    return null;\n  }\n\n  return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n  var isFirefox = /firefox/i.test(getUAString());\n  var isIE = /Trident/i.test(getUAString());\n\n  if (isIE && isHTMLElement(element)) {\n    // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n    var elementCss = getComputedStyle(element);\n\n    if (elementCss.position === 'fixed') {\n      return null;\n    }\n  }\n\n  var currentNode = getParentNode(element);\n\n  if (isShadowRoot(currentNode)) {\n    currentNode = currentNode.host;\n  }\n\n  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n    var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n    // create a containing block.\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n    if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n      return currentNode;\n    } else {\n      currentNode = currentNode.parentNode;\n    }\n  }\n\n  return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n  var window = getWindow(element);\n  var offsetParent = getTrueOffsetParent(element);\n\n  while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n    offsetParent = getTrueOffsetParent(offsetParent);\n  }\n\n  if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n    return window;\n  }\n\n  return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n  return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n  var v = within(min, value, max);\n  return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n  return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0\n  };\n}","export default function expandToHashMap(value, keys) {\n  return keys.reduce(function (hashMap, key) {\n    hashMap[key] = value;\n    return hashMap;\n  }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n  padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : padding;\n  return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n  var _state$modifiersData$;\n\n  var state = _ref.state,\n      name = _ref.name,\n      options = _ref.options;\n  var arrowElement = state.elements.arrow;\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var basePlacement = getBasePlacement(state.placement);\n  var axis = getMainAxisFromPlacement(basePlacement);\n  var isVertical = [left, right].indexOf(basePlacement) >= 0;\n  var len = isVertical ? 'height' : 'width';\n\n  if (!arrowElement || !popperOffsets) {\n    return;\n  }\n\n  var paddingObject = toPaddingObject(options.padding, state);\n  var arrowRect = getLayoutRect(arrowElement);\n  var minProp = axis === 'y' ? top : left;\n  var maxProp = axis === 'y' ? bottom : right;\n  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n  var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n  var arrowOffsetParent = getOffsetParent(arrowElement);\n  var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n  var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n  // outside of the popper bounds\n\n  var min = paddingObject[minProp];\n  var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n  var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n  var axisProp = axis;\n  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options;\n  var _options$element = options.element,\n      arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n  if (arrowElement == null) {\n    return;\n  } // CSS selector\n\n\n  if (typeof arrowElement === 'string') {\n    arrowElement = state.elements.popper.querySelector(arrowElement);\n\n    if (!arrowElement) {\n      return;\n    }\n  }\n\n  if (!contains(state.elements.popper, arrowElement)) {\n    return;\n  }\n\n  state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'arrow',\n  enabled: true,\n  phase: 'main',\n  fn: arrow,\n  effect: effect,\n  requires: ['popperOffsets'],\n  requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n  return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n  top: 'auto',\n  right: 'auto',\n  bottom: 'auto',\n  left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n  var x = _ref.x,\n      y = _ref.y;\n  var dpr = win.devicePixelRatio || 1;\n  return {\n    x: round(x * dpr) / dpr || 0,\n    y: round(y * dpr) / dpr || 0\n  };\n}\n\nexport function mapToStyles(_ref2) {\n  var _Object$assign2;\n\n  var popper = _ref2.popper,\n      popperRect = _ref2.popperRect,\n      placement = _ref2.placement,\n      variation = _ref2.variation,\n      offsets = _ref2.offsets,\n      position = _ref2.position,\n      gpuAcceleration = _ref2.gpuAcceleration,\n      adaptive = _ref2.adaptive,\n      roundOffsets = _ref2.roundOffsets,\n      isFixed = _ref2.isFixed;\n  var _offsets$x = offsets.x,\n      x = _offsets$x === void 0 ? 0 : _offsets$x,\n      _offsets$y = offsets.y,\n      y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n  var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n    x: x,\n    y: y\n  }) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref3.x;\n  y = _ref3.y;\n  var hasX = offsets.hasOwnProperty('x');\n  var hasY = offsets.hasOwnProperty('y');\n  var sideX = left;\n  var sideY = top;\n  var win = window;\n\n  if (adaptive) {\n    var offsetParent = getOffsetParent(popper);\n    var heightProp = 'clientHeight';\n    var widthProp = 'clientWidth';\n\n    if (offsetParent === getWindow(popper)) {\n      offsetParent = getDocumentElement(popper);\n\n      if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n        heightProp = 'scrollHeight';\n        widthProp = 'scrollWidth';\n      }\n    } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n    offsetParent = offsetParent;\n\n    if (placement === top || (placement === left || placement === right) && variation === end) {\n      sideY = bottom;\n      var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n      offsetParent[heightProp];\n      y -= offsetY - popperRect.height;\n      y *= gpuAcceleration ? 1 : -1;\n    }\n\n    if (placement === left || (placement === top || placement === bottom) && variation === end) {\n      sideX = right;\n      var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n      offsetParent[widthProp];\n      x -= offsetX - popperRect.width;\n      x *= gpuAcceleration ? 1 : -1;\n    }\n  }\n\n  var commonStyles = Object.assign({\n    position: position\n  }, adaptive && unsetSides);\n\n  var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n    x: x,\n    y: y\n  }, getWindow(popper)) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref4.x;\n  y = _ref4.y;\n\n  if (gpuAcceleration) {\n    var _Object$assign;\n\n    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n  }\n\n  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n  var state = _ref5.state,\n      options = _ref5.options;\n  var _options$gpuAccelerat = options.gpuAcceleration,\n      gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n      _options$adaptive = options.adaptive,\n      adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n      _options$roundOffsets = options.roundOffsets,\n      roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n  var commonStyles = {\n    placement: getBasePlacement(state.placement),\n    variation: getVariation(state.placement),\n    popper: state.elements.popper,\n    popperRect: state.rects.popper,\n    gpuAcceleration: gpuAcceleration,\n    isFixed: state.options.strategy === 'fixed'\n  };\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.popperOffsets,\n      position: state.options.strategy,\n      adaptive: adaptive,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  if (state.modifiersData.arrow != null) {\n    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.arrow,\n      position: 'absolute',\n      adaptive: false,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-placement': state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'computeStyles',\n  enabled: true,\n  phase: 'beforeWrite',\n  fn: computeStyles,\n  data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n  passive: true\n};\n\nfunction effect(_ref) {\n  var state = _ref.state,\n      instance = _ref.instance,\n      options = _ref.options;\n  var _options$scroll = options.scroll,\n      scroll = _options$scroll === void 0 ? true : _options$scroll,\n      _options$resize = options.resize,\n      resize = _options$resize === void 0 ? true : _options$resize;\n  var window = getWindow(state.elements.popper);\n  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n  if (scroll) {\n    scrollParents.forEach(function (scrollParent) {\n      scrollParent.addEventListener('scroll', instance.update, passive);\n    });\n  }\n\n  if (resize) {\n    window.addEventListener('resize', instance.update, passive);\n  }\n\n  return function () {\n    if (scroll) {\n      scrollParents.forEach(function (scrollParent) {\n        scrollParent.removeEventListener('scroll', instance.update, passive);\n      });\n    }\n\n    if (resize) {\n      window.removeEventListener('resize', instance.update, passive);\n    }\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'eventListeners',\n  enabled: true,\n  phase: 'write',\n  fn: function fn() {},\n  effect: effect,\n  data: {}\n};","var hash = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}","var hash = {\n  start: 'end',\n  end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n  return placement.replace(/start|end/g, function (matched) {\n    return hash[matched];\n  });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n  var win = getWindow(node);\n  var scrollLeft = win.pageXOffset;\n  var scrollTop = win.pageYOffset;\n  return {\n    scrollLeft: scrollLeft,\n    scrollTop: scrollTop\n  };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n  // If <html> has a CSS width greater than the viewport, then this will be\n  // incorrect for RTL.\n  // Popper 1 is broken in this case and never had a bug report so let's assume\n  // it's not an issue. I don't think anyone ever specifies width on <html>\n  // anyway.\n  // Browsers where the left scrollbar doesn't cause an issue report `0` for\n  // this (e.g. Edge 2019, IE11, Safari)\n  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n  // Firefox wants us to check `-x` and `-y` variations as well\n  var _getComputedStyle = getComputedStyle(element),\n      overflow = _getComputedStyle.overflow,\n      overflowX = _getComputedStyle.overflowX,\n      overflowY = _getComputedStyle.overflowY;\n\n  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n  if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n    // $FlowFixMe[incompatible-return]: assume body is always available\n    return node.ownerDocument.body;\n  }\n\n  if (isHTMLElement(node) && isScrollParent(node)) {\n    return node;\n  }\n\n  return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n  var _element$ownerDocumen;\n\n  if (list === void 0) {\n    list = [];\n  }\n\n  var scrollParent = getScrollParent(element);\n  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n  var win = getWindow(scrollParent);\n  var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n  var updatedList = list.concat(target);\n  return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n  updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n  return Object.assign({}, rect, {\n    left: rect.x,\n    top: rect.y,\n    right: rect.x + rect.width,\n    bottom: rect.y + rect.height\n  });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n  var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n  rect.top = rect.top + element.clientTop;\n  rect.left = rect.left + element.clientLeft;\n  rect.bottom = rect.top + element.clientHeight;\n  rect.right = rect.left + element.clientWidth;\n  rect.width = element.clientWidth;\n  rect.height = element.clientHeight;\n  rect.x = rect.left;\n  rect.y = rect.top;\n  return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n  return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n  var clippingParents = listScrollParents(getParentNode(element));\n  var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n  var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n  if (!isElement(clipperElement)) {\n    return [];\n  } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n  return clippingParents.filter(function (clippingParent) {\n    return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n  });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n  var firstClippingParent = clippingParents[0];\n  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n    var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n  clippingRect.width = clippingRect.right - clippingRect.left;\n  clippingRect.height = clippingRect.bottom - clippingRect.top;\n  clippingRect.x = clippingRect.left;\n  clippingRect.y = clippingRect.top;\n  return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n  var win = getWindow(element);\n  var html = getDocumentElement(element);\n  var visualViewport = win.visualViewport;\n  var width = html.clientWidth;\n  var height = html.clientHeight;\n  var x = 0;\n  var y = 0;\n\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    var layoutViewport = isLayoutViewport();\n\n    if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x + getWindowScrollBarX(element),\n    y: y\n  };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n  var _element$ownerDocumen;\n\n  var html = getDocumentElement(element);\n  var winScroll = getWindowScroll(element);\n  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n  var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n  var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n  var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n  var y = -winScroll.scrollTop;\n\n  if (getComputedStyle(body || html).direction === 'rtl') {\n    x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x,\n    y: y\n  };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n  var reference = _ref.reference,\n      element = _ref.element,\n      placement = _ref.placement;\n  var basePlacement = placement ? getBasePlacement(placement) : null;\n  var variation = placement ? getVariation(placement) : null;\n  var commonX = reference.x + reference.width / 2 - element.width / 2;\n  var commonY = reference.y + reference.height / 2 - element.height / 2;\n  var offsets;\n\n  switch (basePlacement) {\n    case top:\n      offsets = {\n        x: commonX,\n        y: reference.y - element.height\n      };\n      break;\n\n    case bottom:\n      offsets = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n\n    case right:\n      offsets = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n\n    case left:\n      offsets = {\n        x: reference.x - element.width,\n        y: commonY\n      };\n      break;\n\n    default:\n      offsets = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n\n  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n  if (mainAxis != null) {\n    var len = mainAxis === 'y' ? 'height' : 'width';\n\n    switch (variation) {\n      case start:\n        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n        break;\n\n      case end:\n        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n        break;\n\n      default:\n    }\n  }\n\n  return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      _options$placement = _options.placement,\n      placement = _options$placement === void 0 ? state.placement : _options$placement,\n      _options$strategy = _options.strategy,\n      strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n      _options$boundary = _options.boundary,\n      boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n      _options$rootBoundary = _options.rootBoundary,\n      rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n      _options$elementConte = _options.elementContext,\n      elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n      _options$altBoundary = _options.altBoundary,\n      altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n      _options$padding = _options.padding,\n      padding = _options$padding === void 0 ? 0 : _options$padding;\n  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n  var altContext = elementContext === popper ? reference : popper;\n  var popperRect = state.rects.popper;\n  var element = state.elements[altBoundary ? altContext : elementContext];\n  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n  var referenceClientRect = getBoundingClientRect(state.elements.reference);\n  var popperOffsets = computeOffsets({\n    reference: referenceClientRect,\n    element: popperRect,\n    strategy: 'absolute',\n    placement: placement\n  });\n  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n  var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n  // 0 or negative = within the clipping rect\n\n  var overflowOffsets = {\n    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n    right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n  };\n  var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n  if (elementContext === popper && offsetData) {\n    var offset = offsetData[placement];\n    Object.keys(overflowOffsets).forEach(function (key) {\n      var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n      var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n      overflowOffsets[key] += offset[axis] * multiply;\n    });\n  }\n\n  return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n  if (getBasePlacement(placement) === auto) {\n    return [];\n  }\n\n  var oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n\n  if (state.modifiersData[name]._skip) {\n    return;\n  }\n\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n      specifiedFallbackPlacements = options.fallbackPlacements,\n      padding = options.padding,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      _options$flipVariatio = options.flipVariations,\n      flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n      allowedAutoPlacements = options.allowedAutoPlacements;\n  var preferredPlacement = state.options.placement;\n  var basePlacement = getBasePlacement(preferredPlacement);\n  var isBasePlacement = basePlacement === preferredPlacement;\n  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n  var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n    return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding,\n      flipVariations: flipVariations,\n      allowedAutoPlacements: allowedAutoPlacements\n    }) : placement);\n  }, []);\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var checksMap = new Map();\n  var makeFallbackChecks = true;\n  var firstFittingPlacement = placements[0];\n\n  for (var i = 0; i < placements.length; i++) {\n    var placement = placements[i];\n\n    var _basePlacement = getBasePlacement(placement);\n\n    var isStartVariation = getVariation(placement) === start;\n    var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n    var len = isVertical ? 'width' : 'height';\n    var overflow = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      altBoundary: altBoundary,\n      padding: padding\n    });\n    var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n    if (referenceRect[len] > popperRect[len]) {\n      mainVariationSide = getOppositePlacement(mainVariationSide);\n    }\n\n    var altVariationSide = getOppositePlacement(mainVariationSide);\n    var checks = [];\n\n    if (checkMainAxis) {\n      checks.push(overflow[_basePlacement] <= 0);\n    }\n\n    if (checkAltAxis) {\n      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n    }\n\n    if (checks.every(function (check) {\n      return check;\n    })) {\n      firstFittingPlacement = placement;\n      makeFallbackChecks = false;\n      break;\n    }\n\n    checksMap.set(placement, checks);\n  }\n\n  if (makeFallbackChecks) {\n    // `2` may be desired in some cases – research later\n    var numberOfChecks = flipVariations ? 3 : 1;\n\n    var _loop = function _loop(_i) {\n      var fittingPlacement = placements.find(function (placement) {\n        var checks = checksMap.get(placement);\n\n        if (checks) {\n          return checks.slice(0, _i).every(function (check) {\n            return check;\n          });\n        }\n      });\n\n      if (fittingPlacement) {\n        firstFittingPlacement = fittingPlacement;\n        return \"break\";\n      }\n    };\n\n    for (var _i = numberOfChecks; _i > 0; _i--) {\n      var _ret = _loop(_i);\n\n      if (_ret === \"break\") break;\n    }\n  }\n\n  if (state.placement !== firstFittingPlacement) {\n    state.modifiersData[name]._skip = true;\n    state.placement = firstFittingPlacement;\n    state.reset = true;\n  }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'flip',\n  enabled: true,\n  phase: 'main',\n  fn: flip,\n  requiresIfExists: ['offset'],\n  data: {\n    _skip: false\n  }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      placement = _options.placement,\n      boundary = _options.boundary,\n      rootBoundary = _options.rootBoundary,\n      padding = _options.padding,\n      flipVariations = _options.flipVariations,\n      _options$allowedAutoP = _options.allowedAutoPlacements,\n      allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n  var variation = getVariation(placement);\n  var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n    return getVariation(placement) === variation;\n  }) : basePlacements;\n  var allowedPlacements = placements.filter(function (placement) {\n    return allowedAutoPlacements.indexOf(placement) >= 0;\n  });\n\n  if (allowedPlacements.length === 0) {\n    allowedPlacements = placements;\n  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n  var overflows = allowedPlacements.reduce(function (acc, placement) {\n    acc[placement] = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding\n    })[getBasePlacement(placement)];\n    return acc;\n  }, {});\n  return Object.keys(overflows).sort(function (a, b) {\n    return overflows[a] - overflows[b];\n  });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n  if (preventedOffsets === void 0) {\n    preventedOffsets = {\n      x: 0,\n      y: 0\n    };\n  }\n\n  return {\n    top: overflow.top - rect.height - preventedOffsets.y,\n    right: overflow.right - rect.width + preventedOffsets.x,\n    bottom: overflow.bottom - rect.height + preventedOffsets.y,\n    left: overflow.left - rect.width - preventedOffsets.x\n  };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n  return [top, right, bottom, left].some(function (side) {\n    return overflow[side] >= 0;\n  });\n}\n\nfunction hide(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var preventedOffsets = state.modifiersData.preventOverflow;\n  var referenceOverflow = detectOverflow(state, {\n    elementContext: 'reference'\n  });\n  var popperAltOverflow = detectOverflow(state, {\n    altBoundary: true\n  });\n  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n  state.modifiersData[name] = {\n    referenceClippingOffsets: referenceClippingOffsets,\n    popperEscapeOffsets: popperEscapeOffsets,\n    isReferenceHidden: isReferenceHidden,\n    hasPopperEscaped: hasPopperEscaped\n  };\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-reference-hidden': isReferenceHidden,\n    'data-popper-escaped': hasPopperEscaped\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'hide',\n  enabled: true,\n  phase: 'main',\n  requiresIfExists: ['preventOverflow'],\n  fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n  var basePlacement = getBasePlacement(placement);\n  var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n  var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n    placement: placement\n  })) : offset,\n      skidding = _ref[0],\n      distance = _ref[1];\n\n  skidding = skidding || 0;\n  distance = (distance || 0) * invertDistance;\n  return [left, right].indexOf(basePlacement) >= 0 ? {\n    x: distance,\n    y: skidding\n  } : {\n    x: skidding,\n    y: distance\n  };\n}\n\nfunction offset(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options,\n      name = _ref2.name;\n  var _options$offset = options.offset,\n      offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n  var data = placements.reduce(function (acc, placement) {\n    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n    return acc;\n  }, {});\n  var _data$state$placement = data[state.placement],\n      x = _data$state$placement.x,\n      y = _data$state$placement.y;\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.modifiersData.popperOffsets.x += x;\n    state.modifiersData.popperOffsets.y += y;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'offset',\n  enabled: true,\n  phase: 'main',\n  requires: ['popperOffsets'],\n  fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n  var state = _ref.state,\n      name = _ref.name; // Offsets are the actual position the popper needs to have to be\n  // properly positioned near its reference element\n  // This is the most basic placement, and will be adjusted by\n  // the modifiers in the next step\n\n  state.modifiersData[name] = computeOffsets({\n    reference: state.rects.reference,\n    element: state.rects.popper,\n    strategy: 'absolute',\n    placement: state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'popperOffsets',\n  enabled: true,\n  phase: 'read',\n  fn: popperOffsets,\n  data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      padding = options.padding,\n      _options$tether = options.tether,\n      tether = _options$tether === void 0 ? true : _options$tether,\n      _options$tetherOffset = options.tetherOffset,\n      tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n  var overflow = detectOverflow(state, {\n    boundary: boundary,\n    rootBoundary: rootBoundary,\n    padding: padding,\n    altBoundary: altBoundary\n  });\n  var basePlacement = getBasePlacement(state.placement);\n  var variation = getVariation(state.placement);\n  var isBasePlacement = !variation;\n  var mainAxis = getMainAxisFromPlacement(basePlacement);\n  var altAxis = getAltAxis(mainAxis);\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : tetherOffset;\n  var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n    mainAxis: tetherOffsetValue,\n    altAxis: tetherOffsetValue\n  } : Object.assign({\n    mainAxis: 0,\n    altAxis: 0\n  }, tetherOffsetValue);\n  var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n  var data = {\n    x: 0,\n    y: 0\n  };\n\n  if (!popperOffsets) {\n    return;\n  }\n\n  if (checkMainAxis) {\n    var _offsetModifierState$;\n\n    var mainSide = mainAxis === 'y' ? top : left;\n    var altSide = mainAxis === 'y' ? bottom : right;\n    var len = mainAxis === 'y' ? 'height' : 'width';\n    var offset = popperOffsets[mainAxis];\n    var min = offset + overflow[mainSide];\n    var max = offset - overflow[altSide];\n    var additive = tether ? -popperRect[len] / 2 : 0;\n    var minLen = variation === start ? referenceRect[len] : popperRect[len];\n    var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n    // outside the reference bounds\n\n    var arrowElement = state.elements.arrow;\n    var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n      width: 0,\n      height: 0\n    };\n    var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n    var arrowPaddingMin = arrowPaddingObject[mainSide];\n    var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n    // to include its full size in the calculation. If the reference is small\n    // and near the edge of a boundary, the popper can overflow even if the\n    // reference is not overflowing as well (e.g. virtual elements with no\n    // width or height)\n\n    var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n    var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n    var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n    var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n    var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n    var tetherMax = offset + maxOffset - offsetModifierValue;\n    var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n    popperOffsets[mainAxis] = preventedOffset;\n    data[mainAxis] = preventedOffset - offset;\n  }\n\n  if (checkAltAxis) {\n    var _offsetModifierState$2;\n\n    var _mainSide = mainAxis === 'x' ? top : left;\n\n    var _altSide = mainAxis === 'x' ? bottom : right;\n\n    var _offset = popperOffsets[altAxis];\n\n    var _len = altAxis === 'y' ? 'height' : 'width';\n\n    var _min = _offset + overflow[_mainSide];\n\n    var _max = _offset - overflow[_altSide];\n\n    var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n    var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n    var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n    var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n    var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n    popperOffsets[altAxis] = _preventedOffset;\n    data[altAxis] = _preventedOffset - _offset;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'preventOverflow',\n  enabled: true,\n  phase: 'main',\n  fn: preventOverflow,\n  requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n  var rect = element.getBoundingClientRect();\n  var scaleX = round(rect.width) / element.offsetWidth || 1;\n  var scaleY = round(rect.height) / element.offsetHeight || 1;\n  return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n\n  var isOffsetParentAnElement = isHTMLElement(offsetParent);\n  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n  var documentElement = getDocumentElement(offsetParent);\n  var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n  var scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  var offsets = {\n    x: 0,\n    y: 0\n  };\n\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n    isScrollParent(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n\n    if (isHTMLElement(offsetParent)) {\n      offsets = getBoundingClientRect(offsetParent, true);\n      offsets.x += offsetParent.clientLeft;\n      offsets.y += offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n\n  return {\n    x: rect.left + scroll.scrollLeft - offsets.x,\n    y: rect.top + scroll.scrollTop - offsets.y,\n    width: rect.width,\n    height: rect.height\n  };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n  if (node === getWindow(node) || !isHTMLElement(node)) {\n    return getWindowScroll(node);\n  } else {\n    return getHTMLElementScroll(node);\n  }\n}","export default function getHTMLElementScroll(element) {\n  return {\n    scrollLeft: element.scrollLeft,\n    scrollTop: element.scrollTop\n  };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n  var map = new Map();\n  var visited = new Set();\n  var result = [];\n  modifiers.forEach(function (modifier) {\n    map.set(modifier.name, modifier);\n  }); // On visiting object, check for its dependencies and visit them recursively\n\n  function sort(modifier) {\n    visited.add(modifier.name);\n    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n    requires.forEach(function (dep) {\n      if (!visited.has(dep)) {\n        var depModifier = map.get(dep);\n\n        if (depModifier) {\n          sort(depModifier);\n        }\n      }\n    });\n    result.push(modifier);\n  }\n\n  modifiers.forEach(function (modifier) {\n    if (!visited.has(modifier.name)) {\n      // check for visited object\n      sort(modifier);\n    }\n  });\n  return result;\n}\n\nexport default function orderModifiers(modifiers) {\n  // order based on dependencies\n  var orderedModifiers = order(modifiers); // order based on phase\n\n  return modifierPhases.reduce(function (acc, phase) {\n    return acc.concat(orderedModifiers.filter(function (modifier) {\n      return modifier.phase === phase;\n    }));\n  }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n  placement: 'bottom',\n  modifiers: [],\n  strategy: 'absolute'\n};\n\nfunction areValidElements() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return !args.some(function (element) {\n    return !(element && typeof element.getBoundingClientRect === 'function');\n  });\n}\n\nexport function popperGenerator(generatorOptions) {\n  if (generatorOptions === void 0) {\n    generatorOptions = {};\n  }\n\n  var _generatorOptions = generatorOptions,\n      _generatorOptions$def = _generatorOptions.defaultModifiers,\n      defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n      _generatorOptions$def2 = _generatorOptions.defaultOptions,\n      defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n  return function createPopper(reference, popper, options) {\n    if (options === void 0) {\n      options = defaultOptions;\n    }\n\n    var state = {\n      placement: 'bottom',\n      orderedModifiers: [],\n      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n      modifiersData: {},\n      elements: {\n        reference: reference,\n        popper: popper\n      },\n      attributes: {},\n      styles: {}\n    };\n    var effectCleanupFns = [];\n    var isDestroyed = false;\n    var instance = {\n      state: state,\n      setOptions: function setOptions(setOptionsAction) {\n        var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n        cleanupModifierEffects();\n        state.options = Object.assign({}, defaultOptions, state.options, options);\n        state.scrollParents = {\n          reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n          popper: listScrollParents(popper)\n        }; // Orders the modifiers based on their dependencies and `phase`\n        // properties\n\n        var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n        state.orderedModifiers = orderedModifiers.filter(function (m) {\n          return m.enabled;\n        });\n        runModifierEffects();\n        return instance.update();\n      },\n      // Sync update – it will always be executed, even if not necessary. This\n      // is useful for low frequency updates where sync behavior simplifies the\n      // logic.\n      // For high frequency updates (e.g. `resize` and `scroll` events), always\n      // prefer the async Popper#update method\n      forceUpdate: function forceUpdate() {\n        if (isDestroyed) {\n          return;\n        }\n\n        var _state$elements = state.elements,\n            reference = _state$elements.reference,\n            popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n        // anymore\n\n        if (!areValidElements(reference, popper)) {\n          return;\n        } // Store the reference and popper rects to be read by modifiers\n\n\n        state.rects = {\n          reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n          popper: getLayoutRect(popper)\n        }; // Modifiers have the ability to reset the current update cycle. The\n        // most common use case for this is the `flip` modifier changing the\n        // placement, which then needs to re-run all the modifiers, because the\n        // logic was previously ran for the previous placement and is therefore\n        // stale/incorrect\n\n        state.reset = false;\n        state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n        // is filled with the initial data specified by the modifier. This means\n        // it doesn't persist and is fresh on each update.\n        // To ensure persistent data, use `${name}#persistent`\n\n        state.orderedModifiers.forEach(function (modifier) {\n          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n        });\n\n        for (var index = 0; index < state.orderedModifiers.length; index++) {\n          if (state.reset === true) {\n            state.reset = false;\n            index = -1;\n            continue;\n          }\n\n          var _state$orderedModifie = state.orderedModifiers[index],\n              fn = _state$orderedModifie.fn,\n              _state$orderedModifie2 = _state$orderedModifie.options,\n              _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n              name = _state$orderedModifie.name;\n\n          if (typeof fn === 'function') {\n            state = fn({\n              state: state,\n              options: _options,\n              name: name,\n              instance: instance\n            }) || state;\n          }\n        }\n      },\n      // Async and optimistically optimized update – it will not be executed if\n      // not necessary (debounced to run at most once-per-tick)\n      update: debounce(function () {\n        return new Promise(function (resolve) {\n          instance.forceUpdate();\n          resolve(state);\n        });\n      }),\n      destroy: function destroy() {\n        cleanupModifierEffects();\n        isDestroyed = true;\n      }\n    };\n\n    if (!areValidElements(reference, popper)) {\n      return instance;\n    }\n\n    instance.setOptions(options).then(function (state) {\n      if (!isDestroyed && options.onFirstUpdate) {\n        options.onFirstUpdate(state);\n      }\n    }); // Modifiers have the ability to execute arbitrary code before the first\n    // update cycle runs. They will be executed in the same order as the update\n    // cycle. This is useful when a modifier adds some persistent data that\n    // other modifiers need to use, but the modifier is run after the dependent\n    // one.\n\n    function runModifierEffects() {\n      state.orderedModifiers.forEach(function (_ref) {\n        var name = _ref.name,\n            _ref$options = _ref.options,\n            options = _ref$options === void 0 ? {} : _ref$options,\n            effect = _ref.effect;\n\n        if (typeof effect === 'function') {\n          var cleanupFn = effect({\n            state: state,\n            name: name,\n            instance: instance,\n            options: options\n          });\n\n          var noopFn = function noopFn() {};\n\n          effectCleanupFns.push(cleanupFn || noopFn);\n        }\n      });\n    }\n\n    function cleanupModifierEffects() {\n      effectCleanupFns.forEach(function (fn) {\n        return fn();\n      });\n      effectCleanupFns = [];\n    }\n\n    return instance;\n  };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n  var pending;\n  return function () {\n    if (!pending) {\n      pending = new Promise(function (resolve) {\n        Promise.resolve().then(function () {\n          pending = undefined;\n          resolve(fn());\n        });\n      });\n    }\n\n    return pending;\n  };\n}","export default function mergeByName(modifiers) {\n  var merged = modifiers.reduce(function (merged, current) {\n    var existing = merged[current.name];\n    merged[current.name] = existing ? Object.assign({}, existing, current, {\n      options: Object.assign({}, existing.options, current.options),\n      data: Object.assign({}, existing.data, current.data)\n    }) : current;\n    return merged;\n  }, {}); // IE11 does not support Object.values\n\n  return Object.keys(merged).map(function (key) {\n    return merged[key];\n  });\n}","var _KEY_TO_DIRECTION;\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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\n/*!\n  * Bootstrap v5.2.3 (https://getbootstrap.com/)\n  * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\nimport * as Popper from '@popperjs/core';\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar MAX_UID = 1000000;\nvar MILLISECONDS_MULTIPLIER = 1000;\nvar TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n\nvar toType = function toType(object) {\n  if (object === null || object === undefined) {\n    return \"\".concat(object);\n  }\n\n  return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * Public Util API\n */\n\n\nvar getUID = function getUID(prefix) {\n  do {\n    prefix += Math.floor(Math.random() * MAX_UID);\n  } while (document.getElementById(prefix));\n\n  return prefix;\n};\n\nvar getSelector = function getSelector(element) {\n  var selector = element.getAttribute('data-bs-target');\n\n  if (!selector || selector === '#') {\n    var hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n    // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n    // `document.querySelector` will rightfully complain it is invalid.\n    // See https://github.com/twbs/bootstrap/issues/32273\n\n    if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n      return null;\n    } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n    if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n      hrefAttribute = \"#\".concat(hrefAttribute.split('#')[1]);\n    }\n\n    selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n  }\n\n  return selector;\n};\n\nvar getSelectorFromElement = function getSelectorFromElement(element) {\n  var selector = getSelector(element);\n\n  if (selector) {\n    return document.querySelector(selector) ? selector : null;\n  }\n\n  return null;\n};\n\nvar getElementFromSelector = function getElementFromSelector(element) {\n  var selector = getSelector(element);\n  return selector ? document.querySelector(selector) : null;\n};\n\nvar getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n  if (!element) {\n    return 0;\n  } // Get transition-duration of the element\n\n\n  var _window$getComputedSt = window.getComputedStyle(element),\n      transitionDuration = _window$getComputedSt.transitionDuration,\n      transitionDelay = _window$getComputedSt.transitionDelay;\n\n  var floatTransitionDuration = Number.parseFloat(transitionDuration);\n  var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n  if (!floatTransitionDuration && !floatTransitionDelay) {\n    return 0;\n  } // If multiple durations are defined, take the first\n\n\n  transitionDuration = transitionDuration.split(',')[0];\n  transitionDelay = transitionDelay.split(',')[0];\n  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nvar triggerTransitionEnd = function triggerTransitionEnd(element) {\n  element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nvar isElement = function isElement(object) {\n  if (!object || _typeof(object) !== 'object') {\n    return false;\n  }\n\n  if (typeof object.jquery !== 'undefined') {\n    object = object[0];\n  }\n\n  return typeof object.nodeType !== 'undefined';\n};\n\nvar getElement = function getElement(object) {\n  // it's a jQuery object or a node element\n  if (isElement(object)) {\n    return object.jquery ? object[0] : object;\n  }\n\n  if (typeof object === 'string' && object.length > 0) {\n    return document.querySelector(object);\n  }\n\n  return null;\n};\n\nvar isVisible = function isVisible(element) {\n  if (!isElement(element) || element.getClientRects().length === 0) {\n    return false;\n  }\n\n  var elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed\n\n  var closedDetails = element.closest('details:not([open])');\n\n  if (!closedDetails) {\n    return elementIsVisible;\n  }\n\n  if (closedDetails !== element) {\n    var summary = element.closest('summary');\n\n    if (summary && summary.parentNode !== closedDetails) {\n      return false;\n    }\n\n    if (summary === null) {\n      return false;\n    }\n  }\n\n  return elementIsVisible;\n};\n\nvar isDisabled = function isDisabled(element) {\n  if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n    return true;\n  }\n\n  if (element.classList.contains('disabled')) {\n    return true;\n  }\n\n  if (typeof element.disabled !== 'undefined') {\n    return element.disabled;\n  }\n\n  return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nvar findShadowRoot = function findShadowRoot(element) {\n  if (!document.documentElement.attachShadow) {\n    return null;\n  } // Can find the shadow root otherwise it'll return the document\n\n\n  if (typeof element.getRootNode === 'function') {\n    var root = element.getRootNode();\n    return root instanceof ShadowRoot ? root : null;\n  }\n\n  if (element instanceof ShadowRoot) {\n    return element;\n  } // when we don't find a shadow root\n\n\n  if (!element.parentNode) {\n    return null;\n  }\n\n  return findShadowRoot(element.parentNode);\n};\n\nvar noop = function noop() {};\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\nvar reflow = function reflow(element) {\n  element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\n\nvar getjQuery = function getjQuery() {\n  if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n    return window.jQuery;\n  }\n\n  return null;\n};\n\nvar DOMContentLoadedCallbacks = [];\n\nvar onDOMContentLoaded = function onDOMContentLoaded(callback) {\n  if (document.readyState === 'loading') {\n    // add listener on the first call when the document is in loading state\n    if (!DOMContentLoadedCallbacks.length) {\n      document.addEventListener('DOMContentLoaded', function () {\n        var _iterator = _createForOfIteratorHelper(DOMContentLoadedCallbacks),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var _callback = _step.value;\n\n            _callback();\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n\n    DOMContentLoadedCallbacks.push(callback);\n  } else {\n    callback();\n  }\n};\n\nvar isRTL = function isRTL() {\n  return document.documentElement.dir === 'rtl';\n};\n\nvar defineJQueryPlugin = function defineJQueryPlugin(plugin) {\n  onDOMContentLoaded(function () {\n    var $ = getjQuery();\n    /* istanbul ignore if */\n\n    if ($) {\n      var name = plugin.NAME;\n      var JQUERY_NO_CONFLICT = $.fn[name];\n      $.fn[name] = plugin.jQueryInterface;\n      $.fn[name].Constructor = plugin;\n\n      $.fn[name].noConflict = function () {\n        $.fn[name] = JQUERY_NO_CONFLICT;\n        return plugin.jQueryInterface;\n      };\n    }\n  });\n};\n\nvar execute = function execute(callback) {\n  if (typeof callback === 'function') {\n    callback();\n  }\n};\n\nvar executeAfterTransition = function executeAfterTransition(callback, transitionElement) {\n  var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n  if (!waitForTransition) {\n    execute(callback);\n    return;\n  }\n\n  var durationPadding = 5;\n  var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n  var called = false;\n\n  var handler = function handler(_ref) {\n    var target = _ref.target;\n\n    if (target !== transitionElement) {\n      return;\n    }\n\n    called = true;\n    transitionElement.removeEventListener(TRANSITION_END, handler);\n    execute(callback);\n  };\n\n  transitionElement.addEventListener(TRANSITION_END, handler);\n  setTimeout(function () {\n    if (!called) {\n      triggerTransitionEnd(transitionElement);\n    }\n  }, emulatedDuration);\n};\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list    The list of elements\n * @param activeElement   The active element\n * @param shouldGetNext   Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\nvar getNextActiveElement = function getNextActiveElement(list, activeElement, shouldGetNext, isCycleAllowed) {\n  var listLength = list.length;\n  var index = list.indexOf(activeElement); // if the element does not exist in the list return an element\n  // depending on the direction and if cycle is allowed\n\n  if (index === -1) {\n    return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n  }\n\n  index += shouldGetNext ? 1 : -1;\n\n  if (isCycleAllowed) {\n    index = (index + listLength) % listLength;\n  }\n\n  return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nvar stripNameRegex = /\\..*/;\nvar stripUidRegex = /::\\d+$/;\nvar eventRegistry = {}; // Events storage\n\nvar uidEvent = 1;\nvar customEvents = {\n  mouseenter: 'mouseover',\n  mouseleave: 'mouseout'\n};\nvar nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n  return uid && \"\".concat(uid, \"::\").concat(uidEvent++) || element.uidEvent || uidEvent++;\n}\n\nfunction getElementEvents(element) {\n  var uid = makeEventUid(element);\n  element.uidEvent = uid;\n  eventRegistry[uid] = eventRegistry[uid] || {};\n  return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n  return function handler(event) {\n    hydrateObj(event, {\n      delegateTarget: element\n    });\n\n    if (handler.oneOff) {\n      EventHandler.off(element, event.type, fn);\n    }\n\n    return fn.apply(element, [event]);\n  };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n  return function handler(event) {\n    var domElements = element.querySelectorAll(selector);\n\n    for (var target = event.target; target && target !== this; target = target.parentNode) {\n      var _iterator2 = _createForOfIteratorHelper(domElements),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var domElement = _step2.value;\n\n          if (domElement !== target) {\n            continue;\n          }\n\n          hydrateObj(event, {\n            delegateTarget: target\n          });\n\n          if (handler.oneOff) {\n            EventHandler.off(element, event.type, selector, fn);\n          }\n\n          return fn.apply(target, [event]);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n  };\n}\n\nfunction findHandler(events, callable) {\n  var delegationSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  return Object.values(events).find(function (event) {\n    return event.callable === callable && event.delegationSelector === delegationSelector;\n  });\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n  var isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check\n\n  var callable = isDelegated ? delegationFunction : handler || delegationFunction;\n  var typeEvent = getTypeEvent(originalTypeEvent);\n\n  if (!nativeEvents.has(typeEvent)) {\n    typeEvent = originalTypeEvent;\n  }\n\n  return [isDelegated, callable, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n  if (typeof originalTypeEvent !== 'string' || !element) {\n    return;\n  }\n\n  var _normalizeParameters = normalizeParameters(originalTypeEvent, handler, delegationFunction),\n      _normalizeParameters2 = _slicedToArray(_normalizeParameters, 3),\n      isDelegated = _normalizeParameters2[0],\n      callable = _normalizeParameters2[1],\n      typeEvent = _normalizeParameters2[2]; // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n  // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n\n  if (originalTypeEvent in customEvents) {\n    var wrapFunction = function wrapFunction(fn) {\n      return function (event) {\n        if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n          return fn.call(this, event);\n        }\n      };\n    };\n\n    callable = wrapFunction(callable);\n  }\n\n  var events = getElementEvents(element);\n  var handlers = events[typeEvent] || (events[typeEvent] = {});\n  var previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n\n  if (previousFunction) {\n    previousFunction.oneOff = previousFunction.oneOff && oneOff;\n    return;\n  }\n\n  var uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n  var fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n  fn.delegationSelector = isDelegated ? handler : null;\n  fn.callable = callable;\n  fn.oneOff = oneOff;\n  fn.uidEvent = uid;\n  handlers[uid] = fn;\n  element.addEventListener(typeEvent, fn, isDelegated);\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n  var fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n  if (!fn) {\n    return;\n  }\n\n  element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n  delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n  var storeElementEvent = events[typeEvent] || {};\n\n  for (var _i2 = 0, _Object$keys = Object.keys(storeElementEvent); _i2 < _Object$keys.length; _i2++) {\n    var handlerKey = _Object$keys[_i2];\n\n    if (handlerKey.includes(namespace)) {\n      var event = storeElementEvent[handlerKey];\n      removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n    }\n  }\n}\n\nfunction getTypeEvent(event) {\n  // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n  event = event.replace(stripNameRegex, '');\n  return customEvents[event] || event;\n}\n\nvar EventHandler = {\n  on: function on(element, event, handler, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, false);\n  },\n  one: function one(element, event, handler, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, true);\n  },\n  off: function off(element, originalTypeEvent, handler, delegationFunction) {\n    if (typeof originalTypeEvent !== 'string' || !element) {\n      return;\n    }\n\n    var _normalizeParameters3 = normalizeParameters(originalTypeEvent, handler, delegationFunction),\n        _normalizeParameters4 = _slicedToArray(_normalizeParameters3, 3),\n        isDelegated = _normalizeParameters4[0],\n        callable = _normalizeParameters4[1],\n        typeEvent = _normalizeParameters4[2];\n\n    var inNamespace = typeEvent !== originalTypeEvent;\n    var events = getElementEvents(element);\n    var storeElementEvent = events[typeEvent] || {};\n    var isNamespace = originalTypeEvent.startsWith('.');\n\n    if (typeof callable !== 'undefined') {\n      // Simplest case: handler is passed, remove that listener ONLY.\n      if (!Object.keys(storeElementEvent).length) {\n        return;\n      }\n\n      removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n      return;\n    }\n\n    if (isNamespace) {\n      for (var _i3 = 0, _Object$keys2 = Object.keys(events); _i3 < _Object$keys2.length; _i3++) {\n        var elementEvent = _Object$keys2[_i3];\n        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n      }\n    }\n\n    for (var _i4 = 0, _Object$keys3 = Object.keys(storeElementEvent); _i4 < _Object$keys3.length; _i4++) {\n      var keyHandlers = _Object$keys3[_i4];\n      var handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n      if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n        var event = storeElementEvent[keyHandlers];\n        removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n      }\n    }\n  },\n  trigger: function trigger(element, event, args) {\n    if (typeof event !== 'string' || !element) {\n      return null;\n    }\n\n    var $ = getjQuery();\n    var typeEvent = getTypeEvent(event);\n    var inNamespace = event !== typeEvent;\n    var jQueryEvent = null;\n    var bubbles = true;\n    var nativeDispatch = true;\n    var defaultPrevented = false;\n\n    if (inNamespace && $) {\n      jQueryEvent = $.Event(event, args);\n      $(element).trigger(jQueryEvent);\n      bubbles = !jQueryEvent.isPropagationStopped();\n      nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n      defaultPrevented = jQueryEvent.isDefaultPrevented();\n    }\n\n    var evt = new Event(event, {\n      bubbles: bubbles,\n      cancelable: true\n    });\n    evt = hydrateObj(evt, args);\n\n    if (defaultPrevented) {\n      evt.preventDefault();\n    }\n\n    if (nativeDispatch) {\n      element.dispatchEvent(evt);\n    }\n\n    if (evt.defaultPrevented && jQueryEvent) {\n      jQueryEvent.preventDefault();\n    }\n\n    return evt;\n  }\n};\n\nfunction hydrateObj(obj, meta) {\n  var _loop = function _loop() {\n    var _ref2 = _Object$entries[_i5];\n    _ref3 = _slicedToArray(_ref2, 2);\n    var key = _ref3[0];\n    var value = _ref3[1];\n\n    try {\n      obj[key] = value;\n    } catch (_unused) {\n      Object.defineProperty(obj, key, {\n        configurable: true,\n        get: function get() {\n          return value;\n        }\n      });\n    }\n  };\n\n  for (var _i5 = 0, _Object$entries = Object.entries(meta || {}); _i5 < _Object$entries.length; _i5++) {\n    var _ref3;\n\n    _loop();\n  }\n\n  return obj;\n}\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar elementMap = new Map();\nvar Data = {\n  set: function set(element, key, instance) {\n    if (!elementMap.has(element)) {\n      elementMap.set(element, new Map());\n    }\n\n    var instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n    // can be removed later when multiple key/instances are fine to be used\n\n    if (!instanceMap.has(key) && instanceMap.size !== 0) {\n      // eslint-disable-next-line no-console\n      console.error(\"Bootstrap doesn't allow more than one instance per element. Bound instance: \".concat(Array.from(instanceMap.keys())[0], \".\"));\n      return;\n    }\n\n    instanceMap.set(key, instance);\n  },\n  get: function get(element, key) {\n    if (elementMap.has(element)) {\n      return elementMap.get(element).get(key) || null;\n    }\n\n    return null;\n  },\n  remove: function remove(element, key) {\n    if (!elementMap.has(element)) {\n      return;\n    }\n\n    var instanceMap = elementMap.get(element);\n    instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n    if (instanceMap.size === 0) {\n      elementMap.delete(element);\n    }\n  }\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n  if (value === 'true') {\n    return true;\n  }\n\n  if (value === 'false') {\n    return false;\n  }\n\n  if (value === Number(value).toString()) {\n    return Number(value);\n  }\n\n  if (value === '' || value === 'null') {\n    return null;\n  }\n\n  if (typeof value !== 'string') {\n    return value;\n  }\n\n  try {\n    return JSON.parse(decodeURIComponent(value));\n  } catch (_unused) {\n    return value;\n  }\n}\n\nfunction normalizeDataKey(key) {\n  return key.replace(/[A-Z]/g, function (chr) {\n    return \"-\".concat(chr.toLowerCase());\n  });\n}\n\nvar Manipulator = {\n  setDataAttribute: function setDataAttribute(element, key, value) {\n    element.setAttribute(\"data-bs-\".concat(normalizeDataKey(key)), value);\n  },\n  removeDataAttribute: function removeDataAttribute(element, key) {\n    element.removeAttribute(\"data-bs-\".concat(normalizeDataKey(key)));\n  },\n  getDataAttributes: function getDataAttributes(element) {\n    if (!element) {\n      return {};\n    }\n\n    var attributes = {};\n    var bsKeys = Object.keys(element.dataset).filter(function (key) {\n      return key.startsWith('bs') && !key.startsWith('bsConfig');\n    });\n\n    var _iterator3 = _createForOfIteratorHelper(bsKeys),\n        _step3;\n\n    try {\n      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n        var key = _step3.value;\n        var pureKey = key.replace(/^bs/, '');\n        pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n        attributes[pureKey] = normalizeData(element.dataset[key]);\n      }\n    } catch (err) {\n      _iterator3.e(err);\n    } finally {\n      _iterator3.f();\n    }\n\n    return attributes;\n  },\n  getDataAttribute: function getDataAttribute(element, key) {\n    return normalizeData(element.getAttribute(\"data-bs-\".concat(normalizeDataKey(key))));\n  }\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Class definition\n */\n\nvar Config = /*#__PURE__*/function () {\n  function Config() {\n    _classCallCheck(this, Config);\n  }\n\n  _createClass(Config, [{\n    key: \"_getConfig\",\n    value: function _getConfig(config) {\n      config = this._mergeConfigObj(config);\n      config = this._configAfterMerge(config);\n\n      this._typeCheckConfig(config);\n\n      return config;\n    }\n  }, {\n    key: \"_configAfterMerge\",\n    value: function _configAfterMerge(config) {\n      return config;\n    }\n  }, {\n    key: \"_mergeConfigObj\",\n    value: function _mergeConfigObj(config, element) {\n      var jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n      return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), _typeof(jsonConfig) === 'object' ? jsonConfig : {}), isElement(element) ? Manipulator.getDataAttributes(element) : {}), _typeof(config) === 'object' ? config : {});\n    }\n  }, {\n    key: \"_typeCheckConfig\",\n    value: function _typeCheckConfig(config) {\n      var configTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.constructor.DefaultType;\n\n      for (var _i6 = 0, _Object$keys4 = Object.keys(configTypes); _i6 < _Object$keys4.length; _i6++) {\n        var property = _Object$keys4[_i6];\n        var expectedTypes = configTypes[property];\n        var value = config[property];\n        var valueType = isElement(value) ? 'element' : toType(value);\n\n        if (!new RegExp(expectedTypes).test(valueType)) {\n          throw new TypeError(\"\".concat(this.constructor.NAME.toUpperCase(), \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\".\"));\n        }\n      }\n    }\n  }], [{\n    key: \"Default\",\n    get: // Getters\n    function get() {\n      return {};\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return {};\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      throw new Error('You have to implement the static method \"NAME\", for each component!');\n    }\n  }]);\n\n  return Config;\n}();\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar VERSION = '5.2.3';\n/**\n * Class definition\n */\n\nvar BaseComponent = /*#__PURE__*/function (_Config) {\n  _inherits(BaseComponent, _Config);\n\n  var _super = _createSuper(BaseComponent);\n\n  function BaseComponent(element, config) {\n    var _this;\n\n    _classCallCheck(this, BaseComponent);\n\n    _this = _super.call(this);\n    element = getElement(element);\n\n    if (!element) {\n      return _possibleConstructorReturn(_this);\n    }\n\n    _this._element = element;\n    _this._config = _this._getConfig(config);\n    Data.set(_this._element, _this.constructor.DATA_KEY, _assertThisInitialized(_this));\n    return _this;\n  } // Public\n\n\n  _createClass(BaseComponent, [{\n    key: \"dispose\",\n    value: function dispose() {\n      Data.remove(this._element, this.constructor.DATA_KEY);\n      EventHandler.off(this._element, this.constructor.EVENT_KEY);\n\n      var _iterator4 = _createForOfIteratorHelper(Object.getOwnPropertyNames(this)),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var propertyName = _step4.value;\n          this[propertyName] = null;\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n    }\n  }, {\n    key: \"_queueCallback\",\n    value: function _queueCallback(callback, element) {\n      var isAnimated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n      executeAfterTransition(callback, element, isAnimated);\n    }\n  }, {\n    key: \"_getConfig\",\n    value: function _getConfig(config) {\n      config = this._mergeConfigObj(config, this._element);\n      config = this._configAfterMerge(config);\n\n      this._typeCheckConfig(config);\n\n      return config;\n    } // Static\n\n  }], [{\n    key: \"getInstance\",\n    value: function getInstance(element) {\n      return Data.get(getElement(element), this.DATA_KEY);\n    }\n  }, {\n    key: \"getOrCreateInstance\",\n    value: function getOrCreateInstance(element) {\n      var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      return this.getInstance(element) || new this(element, _typeof(config) === 'object' ? config : null);\n    }\n  }, {\n    key: \"VERSION\",\n    get: function get() {\n      return VERSION;\n    }\n  }, {\n    key: \"DATA_KEY\",\n    get: function get() {\n      return \"bs.\".concat(this.NAME);\n    }\n  }, {\n    key: \"EVENT_KEY\",\n    get: function get() {\n      return \".\".concat(this.DATA_KEY);\n    }\n  }, {\n    key: \"eventName\",\n    value: function eventName(name) {\n      return \"\".concat(name).concat(this.EVENT_KEY);\n    }\n  }]);\n\n  return BaseComponent;\n}(Config);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\nvar enableDismissTrigger = function enableDismissTrigger(component) {\n  var method = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hide';\n  var clickEvent = \"click.dismiss\".concat(component.EVENT_KEY);\n  var name = component.NAME;\n  EventHandler.on(document, clickEvent, \"[data-bs-dismiss=\\\"\".concat(name, \"\\\"]\"), function (event) {\n    if (['A', 'AREA'].includes(this.tagName)) {\n      event.preventDefault();\n    }\n\n    if (isDisabled(this)) {\n      return;\n    }\n\n    var target = getElementFromSelector(this) || this.closest(\".\".concat(name));\n    var instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n    instance[method]();\n  });\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar NAME$f = 'alert';\nvar DATA_KEY$a = 'bs.alert';\nvar EVENT_KEY$b = \".\".concat(DATA_KEY$a);\nvar EVENT_CLOSE = \"close\".concat(EVENT_KEY$b);\nvar EVENT_CLOSED = \"closed\".concat(EVENT_KEY$b);\nvar CLASS_NAME_FADE$5 = 'fade';\nvar CLASS_NAME_SHOW$8 = 'show';\n/**\n * Class definition\n */\n\nvar Alert = /*#__PURE__*/function (_BaseComponent) {\n  _inherits(Alert, _BaseComponent);\n\n  var _super2 = _createSuper(Alert);\n\n  function Alert() {\n    _classCallCheck(this, Alert);\n\n    return _super2.apply(this, arguments);\n  }\n\n  _createClass(Alert, [{\n    key: \"close\",\n    value: // Public\n    function close() {\n      var _this2 = this;\n\n      var closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n      if (closeEvent.defaultPrevented) {\n        return;\n      }\n\n      this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n      var isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n      this._queueCallback(function () {\n        return _this2._destroyElement();\n      }, this._element, isAnimated);\n    } // Private\n\n  }, {\n    key: \"_destroyElement\",\n    value: function _destroyElement() {\n      this._element.remove();\n\n      EventHandler.trigger(this._element, EVENT_CLOSED);\n      this.dispose();\n    } // Static\n\n  }], [{\n    key: \"NAME\",\n    get: // Getters\n    function get() {\n      return NAME$f;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Alert.getOrCreateInstance(this);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config](this);\n      });\n    }\n  }]);\n\n  return Alert;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$e = 'button';\nvar DATA_KEY$9 = 'bs.button';\nvar EVENT_KEY$a = \".\".concat(DATA_KEY$9);\nvar DATA_API_KEY$6 = '.data-api';\nvar CLASS_NAME_ACTIVE$3 = 'active';\nvar SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nvar EVENT_CLICK_DATA_API$6 = \"click\".concat(EVENT_KEY$a).concat(DATA_API_KEY$6);\n/**\n * Class definition\n */\n\nvar Button = /*#__PURE__*/function (_BaseComponent2) {\n  _inherits(Button, _BaseComponent2);\n\n  var _super3 = _createSuper(Button);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _super3.apply(this, arguments);\n  }\n\n  _createClass(Button, [{\n    key: \"toggle\",\n    value: // Public\n    function toggle() {\n      // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n      this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n    } // Static\n\n  }], [{\n    key: \"NAME\",\n    get: // Getters\n    function get() {\n      return NAME$e;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Button.getOrCreateInstance(this);\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    }\n  }]);\n\n  return Button;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, function (event) {\n  event.preventDefault();\n  var button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n  var data = Button.getOrCreateInstance(button);\n  data.toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar SelectorEngine = {\n  find: function find(selector) {\n    var _ref4;\n\n    var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n    return (_ref4 = []).concat.apply(_ref4, _toConsumableArray(Element.prototype.querySelectorAll.call(element, selector)));\n  },\n  findOne: function findOne(selector) {\n    var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n    return Element.prototype.querySelector.call(element, selector);\n  },\n  children: function children(element, selector) {\n    var _ref5;\n\n    return (_ref5 = []).concat.apply(_ref5, _toConsumableArray(element.children)).filter(function (child) {\n      return child.matches(selector);\n    });\n  },\n  parents: function parents(element, selector) {\n    var parents = [];\n    var ancestor = element.parentNode.closest(selector);\n\n    while (ancestor) {\n      parents.push(ancestor);\n      ancestor = ancestor.parentNode.closest(selector);\n    }\n\n    return parents;\n  },\n  prev: function prev(element, selector) {\n    var previous = element.previousElementSibling;\n\n    while (previous) {\n      if (previous.matches(selector)) {\n        return [previous];\n      }\n\n      previous = previous.previousElementSibling;\n    }\n\n    return [];\n  },\n  // TODO: this is now unused; remove later along with prev()\n  next: function next(element, selector) {\n    var next = element.nextElementSibling;\n\n    while (next) {\n      if (next.matches(selector)) {\n        return [next];\n      }\n\n      next = next.nextElementSibling;\n    }\n\n    return [];\n  },\n  focusableChildren: function focusableChildren(element) {\n    var focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(function (selector) {\n      return \"\".concat(selector, \":not([tabindex^=\\\"-\\\"])\");\n    }).join(',');\n    return this.find(focusables, element).filter(function (el) {\n      return !isDisabled(el) && isVisible(el);\n    });\n  }\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$d = 'swipe';\nvar EVENT_KEY$9 = '.bs.swipe';\nvar EVENT_TOUCHSTART = \"touchstart\".concat(EVENT_KEY$9);\nvar EVENT_TOUCHMOVE = \"touchmove\".concat(EVENT_KEY$9);\nvar EVENT_TOUCHEND = \"touchend\".concat(EVENT_KEY$9);\nvar EVENT_POINTERDOWN = \"pointerdown\".concat(EVENT_KEY$9);\nvar EVENT_POINTERUP = \"pointerup\".concat(EVENT_KEY$9);\nvar POINTER_TYPE_TOUCH = 'touch';\nvar POINTER_TYPE_PEN = 'pen';\nvar CLASS_NAME_POINTER_EVENT = 'pointer-event';\nvar SWIPE_THRESHOLD = 40;\nvar Default$c = {\n  endCallback: null,\n  leftCallback: null,\n  rightCallback: null\n};\nvar DefaultType$c = {\n  endCallback: '(function|null)',\n  leftCallback: '(function|null)',\n  rightCallback: '(function|null)'\n};\n/**\n * Class definition\n */\n\nvar Swipe = /*#__PURE__*/function (_Config2) {\n  _inherits(Swipe, _Config2);\n\n  var _super4 = _createSuper(Swipe);\n\n  function Swipe(element, config) {\n    var _this3;\n\n    _classCallCheck(this, Swipe);\n\n    _this3 = _super4.call(this);\n    _this3._element = element;\n\n    if (!element || !Swipe.isSupported()) {\n      return _possibleConstructorReturn(_this3);\n    }\n\n    _this3._config = _this3._getConfig(config);\n    _this3._deltaX = 0;\n    _this3._supportPointerEvents = Boolean(window.PointerEvent);\n\n    _this3._initEvents();\n\n    return _this3;\n  } // Getters\n\n\n  _createClass(Swipe, [{\n    key: \"dispose\",\n    value: // Public\n    function dispose() {\n      EventHandler.off(this._element, EVENT_KEY$9);\n    } // Private\n\n  }, {\n    key: \"_start\",\n    value: function _start(event) {\n      if (!this._supportPointerEvents) {\n        this._deltaX = event.touches[0].clientX;\n        return;\n      }\n\n      if (this._eventIsPointerPenTouch(event)) {\n        this._deltaX = event.clientX;\n      }\n    }\n  }, {\n    key: \"_end\",\n    value: function _end(event) {\n      if (this._eventIsPointerPenTouch(event)) {\n        this._deltaX = event.clientX - this._deltaX;\n      }\n\n      this._handleSwipe();\n\n      execute(this._config.endCallback);\n    }\n  }, {\n    key: \"_move\",\n    value: function _move(event) {\n      this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n    }\n  }, {\n    key: \"_handleSwipe\",\n    value: function _handleSwipe() {\n      var absDeltaX = Math.abs(this._deltaX);\n\n      if (absDeltaX <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltaX / this._deltaX;\n      this._deltaX = 0;\n\n      if (!direction) {\n        return;\n      }\n\n      execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n    }\n  }, {\n    key: \"_initEvents\",\n    value: function _initEvents() {\n      var _this4 = this;\n\n      if (this._supportPointerEvents) {\n        EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {\n          return _this4._start(event);\n        });\n        EventHandler.on(this._element, EVENT_POINTERUP, function (event) {\n          return _this4._end(event);\n        });\n\n        this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n      } else {\n        EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {\n          return _this4._start(event);\n        });\n        EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {\n          return _this4._move(event);\n        });\n        EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {\n          return _this4._end(event);\n        });\n      }\n    }\n  }, {\n    key: \"_eventIsPointerPenTouch\",\n    value: function _eventIsPointerPenTouch(event) {\n      return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$c;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$c;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$d;\n    }\n  }, {\n    key: \"isSupported\",\n    value: function isSupported() {\n      return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n    }\n  }]);\n\n  return Swipe;\n}(Config);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar NAME$c = 'carousel';\nvar DATA_KEY$8 = 'bs.carousel';\nvar EVENT_KEY$8 = \".\".concat(DATA_KEY$8);\nvar DATA_API_KEY$5 = '.data-api';\nvar ARROW_LEFT_KEY$1 = 'ArrowLeft';\nvar ARROW_RIGHT_KEY$1 = 'ArrowRight';\nvar TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nvar ORDER_NEXT = 'next';\nvar ORDER_PREV = 'prev';\nvar DIRECTION_LEFT = 'left';\nvar DIRECTION_RIGHT = 'right';\nvar EVENT_SLIDE = \"slide\".concat(EVENT_KEY$8);\nvar EVENT_SLID = \"slid\".concat(EVENT_KEY$8);\nvar EVENT_KEYDOWN$1 = \"keydown\".concat(EVENT_KEY$8);\nvar EVENT_MOUSEENTER$1 = \"mouseenter\".concat(EVENT_KEY$8);\nvar EVENT_MOUSELEAVE$1 = \"mouseleave\".concat(EVENT_KEY$8);\nvar EVENT_DRAG_START = \"dragstart\".concat(EVENT_KEY$8);\nvar EVENT_LOAD_DATA_API$3 = \"load\".concat(EVENT_KEY$8).concat(DATA_API_KEY$5);\nvar EVENT_CLICK_DATA_API$5 = \"click\".concat(EVENT_KEY$8).concat(DATA_API_KEY$5);\nvar CLASS_NAME_CAROUSEL = 'carousel';\nvar CLASS_NAME_ACTIVE$2 = 'active';\nvar CLASS_NAME_SLIDE = 'slide';\nvar CLASS_NAME_END = 'carousel-item-end';\nvar CLASS_NAME_START = 'carousel-item-start';\nvar CLASS_NAME_NEXT = 'carousel-item-next';\nvar CLASS_NAME_PREV = 'carousel-item-prev';\nvar SELECTOR_ACTIVE = '.active';\nvar SELECTOR_ITEM = '.carousel-item';\nvar SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nvar SELECTOR_ITEM_IMG = '.carousel-item img';\nvar SELECTOR_INDICATORS = '.carousel-indicators';\nvar SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nvar SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nvar KEY_TO_DIRECTION = (_KEY_TO_DIRECTION = {}, _defineProperty(_KEY_TO_DIRECTION, ARROW_LEFT_KEY$1, DIRECTION_RIGHT), _defineProperty(_KEY_TO_DIRECTION, ARROW_RIGHT_KEY$1, DIRECTION_LEFT), _KEY_TO_DIRECTION);\nvar Default$b = {\n  interval: 5000,\n  keyboard: true,\n  pause: 'hover',\n  ride: false,\n  touch: true,\n  wrap: true\n};\nvar DefaultType$b = {\n  interval: '(number|boolean)',\n  // TODO:v6 remove boolean support\n  keyboard: 'boolean',\n  pause: '(string|boolean)',\n  ride: '(boolean|string)',\n  touch: 'boolean',\n  wrap: 'boolean'\n};\n/**\n * Class definition\n */\n\nvar Carousel = /*#__PURE__*/function (_BaseComponent3) {\n  _inherits(Carousel, _BaseComponent3);\n\n  var _super5 = _createSuper(Carousel);\n\n  function Carousel(element, config) {\n    var _this5;\n\n    _classCallCheck(this, Carousel);\n\n    _this5 = _super5.call(this, element, config);\n    _this5._interval = null;\n    _this5._activeElement = null;\n    _this5._isSliding = false;\n    _this5.touchTimeout = null;\n    _this5._swipeHelper = null;\n    _this5._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this5._element);\n\n    _this5._addEventListeners();\n\n    if (_this5._config.ride === CLASS_NAME_CAROUSEL) {\n      _this5.cycle();\n    }\n\n    return _this5;\n  } // Getters\n\n\n  _createClass(Carousel, [{\n    key: \"next\",\n    value: // Public\n    function next() {\n      this._slide(ORDER_NEXT);\n    }\n  }, {\n    key: \"nextWhenVisible\",\n    value: function nextWhenVisible() {\n      // FIXME TODO use `document.visibilityState`\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden && isVisible(this._element)) {\n        this.next();\n      }\n    }\n  }, {\n    key: \"prev\",\n    value: function prev() {\n      this._slide(ORDER_PREV);\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      if (this._isSliding) {\n        triggerTransitionEnd(this._element);\n      }\n\n      this._clearInterval();\n    }\n  }, {\n    key: \"cycle\",\n    value: function cycle() {\n      var _this6 = this;\n\n      this._clearInterval();\n\n      this._updateInterval();\n\n      this._interval = setInterval(function () {\n        return _this6.nextWhenVisible();\n      }, this._config.interval);\n    }\n  }, {\n    key: \"_maybeEnableCycle\",\n    value: function _maybeEnableCycle() {\n      var _this7 = this;\n\n      if (!this._config.ride) {\n        return;\n      }\n\n      if (this._isSliding) {\n        EventHandler.one(this._element, EVENT_SLID, function () {\n          return _this7.cycle();\n        });\n        return;\n      }\n\n      this.cycle();\n    }\n  }, {\n    key: \"to\",\n    value: function to(index) {\n      var _this8 = this;\n\n      var items = this._getItems();\n\n      if (index > items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        EventHandler.one(this._element, EVENT_SLID, function () {\n          return _this8.to(index);\n        });\n        return;\n      }\n\n      var activeIndex = this._getItemIndex(this._getActive());\n\n      if (activeIndex === index) {\n        return;\n      }\n\n      var order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n      this._slide(order, items[index]);\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      if (this._swipeHelper) {\n        this._swipeHelper.dispose();\n      }\n\n      _get(_getPrototypeOf(Carousel.prototype), \"dispose\", this).call(this);\n    } // Private\n\n  }, {\n    key: \"_configAfterMerge\",\n    value: function _configAfterMerge(config) {\n      config.defaultInterval = config.interval;\n      return config;\n    }\n  }, {\n    key: \"_addEventListeners\",\n    value: function _addEventListeners() {\n      var _this9 = this;\n\n      if (this._config.keyboard) {\n        EventHandler.on(this._element, EVENT_KEYDOWN$1, function (event) {\n          return _this9._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        EventHandler.on(this._element, EVENT_MOUSEENTER$1, function () {\n          return _this9.pause();\n        });\n        EventHandler.on(this._element, EVENT_MOUSELEAVE$1, function () {\n          return _this9._maybeEnableCycle();\n        });\n      }\n\n      if (this._config.touch && Swipe.isSupported()) {\n        this._addTouchEventListeners();\n      }\n    }\n  }, {\n    key: \"_addTouchEventListeners\",\n    value: function _addTouchEventListeners() {\n      var _this10 = this;\n\n      var _iterator5 = _createForOfIteratorHelper(SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var img = _step5.value;\n          EventHandler.on(img, EVENT_DRAG_START, function (event) {\n            return event.preventDefault();\n          });\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      var endCallBack = function endCallBack() {\n        if (_this10._config.pause !== 'hover') {\n          return;\n        } // 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\n        _this10.pause();\n\n        if (_this10.touchTimeout) {\n          clearTimeout(_this10.touchTimeout);\n        }\n\n        _this10.touchTimeout = setTimeout(function () {\n          return _this10._maybeEnableCycle();\n        }, TOUCHEVENT_COMPAT_WAIT + _this10._config.interval);\n      };\n\n      var swipeConfig = {\n        leftCallback: function leftCallback() {\n          return _this10._slide(_this10._directionToOrder(DIRECTION_LEFT));\n        },\n        rightCallback: function rightCallback() {\n          return _this10._slide(_this10._directionToOrder(DIRECTION_RIGHT));\n        },\n        endCallback: endCallBack\n      };\n      this._swipeHelper = new Swipe(this._element, swipeConfig);\n    }\n  }, {\n    key: \"_keydown\",\n    value: function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      var direction = KEY_TO_DIRECTION[event.key];\n\n      if (direction) {\n        event.preventDefault();\n\n        this._slide(this._directionToOrder(direction));\n      }\n    }\n  }, {\n    key: \"_getItemIndex\",\n    value: function _getItemIndex(element) {\n      return this._getItems().indexOf(element);\n    }\n  }, {\n    key: \"_setActiveIndicatorElement\",\n    value: function _setActiveIndicatorElement(index) {\n      if (!this._indicatorsElement) {\n        return;\n      }\n\n      var activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n      activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n      activeIndicator.removeAttribute('aria-current');\n      var newActiveIndicator = SelectorEngine.findOne(\"[data-bs-slide-to=\\\"\".concat(index, \"\\\"]\"), this._indicatorsElement);\n\n      if (newActiveIndicator) {\n        newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n        newActiveIndicator.setAttribute('aria-current', 'true');\n      }\n    }\n  }, {\n    key: \"_updateInterval\",\n    value: function _updateInterval() {\n      var element = this._activeElement || this._getActive();\n\n      if (!element) {\n        return;\n      }\n\n      var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n      this._config.interval = elementInterval || this._config.defaultInterval;\n    }\n  }, {\n    key: \"_slide\",\n    value: function _slide(order) {\n      var _this11 = this;\n\n      var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n      if (this._isSliding) {\n        return;\n      }\n\n      var activeElement = this._getActive();\n\n      var isNext = order === ORDER_NEXT;\n      var nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n\n      if (nextElement === activeElement) {\n        return;\n      }\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var triggerEvent = function triggerEvent(eventName) {\n        return EventHandler.trigger(_this11._element, eventName, {\n          relatedTarget: nextElement,\n          direction: _this11._orderToDirection(order),\n          from: _this11._getItemIndex(activeElement),\n          to: nextElementIndex\n        });\n      };\n\n      var slideEvent = triggerEvent(EVENT_SLIDE);\n\n      if (slideEvent.defaultPrevented) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        // todo: change tests that use empty divs to avoid this check\n        return;\n      }\n\n      var isCycling = Boolean(this._interval);\n      this.pause();\n      this._isSliding = true;\n\n      this._setActiveIndicatorElement(nextElementIndex);\n\n      this._activeElement = nextElement;\n      var directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n      var orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n      nextElement.classList.add(orderClassName);\n      reflow(nextElement);\n      activeElement.classList.add(directionalClassName);\n      nextElement.classList.add(directionalClassName);\n\n      var completeCallBack = function completeCallBack() {\n        nextElement.classList.remove(directionalClassName, orderClassName);\n        nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n        activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n        _this11._isSliding = false;\n        triggerEvent(EVENT_SLID);\n      };\n\n      this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n\n      if (isCycling) {\n        this.cycle();\n      }\n    }\n  }, {\n    key: \"_isAnimated\",\n    value: function _isAnimated() {\n      return this._element.classList.contains(CLASS_NAME_SLIDE);\n    }\n  }, {\n    key: \"_getActive\",\n    value: function _getActive() {\n      return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n    }\n  }, {\n    key: \"_getItems\",\n    value: function _getItems() {\n      return SelectorEngine.find(SELECTOR_ITEM, this._element);\n    }\n  }, {\n    key: \"_clearInterval\",\n    value: function _clearInterval() {\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n    }\n  }, {\n    key: \"_directionToOrder\",\n    value: function _directionToOrder(direction) {\n      if (isRTL()) {\n        return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n      }\n\n      return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n    }\n  }, {\n    key: \"_orderToDirection\",\n    value: function _orderToDirection(order) {\n      if (isRTL()) {\n        return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n      }\n\n      return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$b;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$b;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$c;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Carousel.getOrCreateInstance(this, config);\n\n        if (typeof config === 'number') {\n          data.to(config);\n          return;\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n            throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n          }\n\n          data[config]();\n        }\n      });\n    }\n  }]);\n\n  return Carousel;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n  var target = getElementFromSelector(this);\n\n  if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n    return;\n  }\n\n  event.preventDefault();\n  var carousel = Carousel.getOrCreateInstance(target);\n  var slideIndex = this.getAttribute('data-bs-slide-to');\n\n  if (slideIndex) {\n    carousel.to(slideIndex);\n\n    carousel._maybeEnableCycle();\n\n    return;\n  }\n\n  if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n    carousel.next();\n\n    carousel._maybeEnableCycle();\n\n    return;\n  }\n\n  carousel.prev();\n\n  carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, function () {\n  var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n  var _iterator6 = _createForOfIteratorHelper(carousels),\n      _step6;\n\n  try {\n    for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n      var carousel = _step6.value;\n      Carousel.getOrCreateInstance(carousel);\n    }\n  } catch (err) {\n    _iterator6.e(err);\n  } finally {\n    _iterator6.f();\n  }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$b = 'collapse';\nvar DATA_KEY$7 = 'bs.collapse';\nvar EVENT_KEY$7 = \".\".concat(DATA_KEY$7);\nvar DATA_API_KEY$4 = '.data-api';\nvar EVENT_SHOW$6 = \"show\".concat(EVENT_KEY$7);\nvar EVENT_SHOWN$6 = \"shown\".concat(EVENT_KEY$7);\nvar EVENT_HIDE$6 = \"hide\".concat(EVENT_KEY$7);\nvar EVENT_HIDDEN$6 = \"hidden\".concat(EVENT_KEY$7);\nvar EVENT_CLICK_DATA_API$4 = \"click\".concat(EVENT_KEY$7).concat(DATA_API_KEY$4);\nvar CLASS_NAME_SHOW$7 = 'show';\nvar CLASS_NAME_COLLAPSE = 'collapse';\nvar CLASS_NAME_COLLAPSING = 'collapsing';\nvar CLASS_NAME_COLLAPSED = 'collapsed';\nvar CLASS_NAME_DEEPER_CHILDREN = \":scope .\".concat(CLASS_NAME_COLLAPSE, \" .\").concat(CLASS_NAME_COLLAPSE);\nvar CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nvar WIDTH = 'width';\nvar HEIGHT = 'height';\nvar SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nvar SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nvar Default$a = {\n  parent: null,\n  toggle: true\n};\nvar DefaultType$a = {\n  parent: '(null|element)',\n  toggle: 'boolean'\n};\n/**\n * Class definition\n */\n\nvar Collapse = /*#__PURE__*/function (_BaseComponent4) {\n  _inherits(Collapse, _BaseComponent4);\n\n  var _super6 = _createSuper(Collapse);\n\n  function Collapse(element, config) {\n    var _this12;\n\n    _classCallCheck(this, Collapse);\n\n    _this12 = _super6.call(this, element, config);\n    _this12._isTransitioning = false;\n    _this12._triggerArray = [];\n    var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n    var _iterator7 = _createForOfIteratorHelper(toggleList),\n        _step7;\n\n    try {\n      for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n        var elem = _step7.value;\n        var selector = getSelectorFromElement(elem);\n        var filterElement = SelectorEngine.find(selector).filter(function (foundElement) {\n          return foundElement === _this12._element;\n        });\n\n        if (selector !== null && filterElement.length) {\n          _this12._triggerArray.push(elem);\n        }\n      }\n    } catch (err) {\n      _iterator7.e(err);\n    } finally {\n      _iterator7.f();\n    }\n\n    _this12._initializeChildren();\n\n    if (!_this12._config.parent) {\n      _this12._addAriaAndCollapsedClass(_this12._triggerArray, _this12._isShown());\n    }\n\n    if (_this12._config.toggle) {\n      _this12.toggle();\n    }\n\n    return _this12;\n  } // Getters\n\n\n  _createClass(Collapse, [{\n    key: \"toggle\",\n    value: // Public\n    function toggle() {\n      if (this._isShown()) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this13 = this;\n\n      if (this._isTransitioning || this._isShown()) {\n        return;\n      }\n\n      var activeChildren = []; // find active children\n\n      if (this._config.parent) {\n        activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(function (element) {\n          return element !== _this13._element;\n        }).map(function (element) {\n          return Collapse.getOrCreateInstance(element, {\n            toggle: false\n          });\n        });\n      }\n\n      if (activeChildren.length && activeChildren[0]._isTransitioning) {\n        return;\n      }\n\n      var startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n\n      if (startEvent.defaultPrevented) {\n        return;\n      }\n\n      var _iterator8 = _createForOfIteratorHelper(activeChildren),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var activeInstance = _step8.value;\n          activeInstance.hide();\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n      this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n      this._element.style[dimension] = 0;\n\n      this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n      this._isTransitioning = true;\n\n      var complete = function complete() {\n        _this13._isTransitioning = false;\n\n        _this13._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n        _this13._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n        _this13._element.style[dimension] = '';\n        EventHandler.trigger(_this13._element, EVENT_SHOWN$6);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\".concat(capitalizedDimension);\n\n      this._queueCallback(complete, this._element, true);\n\n      this._element.style[dimension] = \"\".concat(this._element[scrollSize], \"px\");\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var _this14 = this;\n\n      if (this._isTransitioning || !this._isShown()) {\n        return;\n      }\n\n      var startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n\n      if (startEvent.defaultPrevented) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = \"\".concat(this._element.getBoundingClientRect()[dimension], \"px\");\n      reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n      this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n      var _iterator9 = _createForOfIteratorHelper(this._triggerArray),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var trigger = _step9.value;\n          var element = getElementFromSelector(trigger);\n\n          if (element && !this._isShown(element)) {\n            this._addAriaAndCollapsedClass([trigger], false);\n          }\n        }\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      this._isTransitioning = true;\n\n      var complete = function complete() {\n        _this14._isTransitioning = false;\n\n        _this14._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n        _this14._element.classList.add(CLASS_NAME_COLLAPSE);\n\n        EventHandler.trigger(_this14._element, EVENT_HIDDEN$6);\n      };\n\n      this._element.style[dimension] = '';\n\n      this._queueCallback(complete, this._element, true);\n    }\n  }, {\n    key: \"_isShown\",\n    value: function _isShown() {\n      var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element;\n      return element.classList.contains(CLASS_NAME_SHOW$7);\n    } // Private\n\n  }, {\n    key: \"_configAfterMerge\",\n    value: function _configAfterMerge(config) {\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      config.parent = getElement(config.parent);\n      return config;\n    }\n  }, {\n    key: \"_getDimension\",\n    value: function _getDimension() {\n      return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n    }\n  }, {\n    key: \"_initializeChildren\",\n    value: function _initializeChildren() {\n      if (!this._config.parent) {\n        return;\n      }\n\n      var children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n\n      var _iterator10 = _createForOfIteratorHelper(children),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var element = _step10.value;\n          var selected = getElementFromSelector(element);\n\n          if (selected) {\n            this._addAriaAndCollapsedClass([element], this._isShown(selected));\n          }\n        }\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n    }\n  }, {\n    key: \"_getFirstLevelChildren\",\n    value: function _getFirstLevelChildren(selector) {\n      var children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth\n\n      return SelectorEngine.find(selector, this._config.parent).filter(function (element) {\n        return !children.includes(element);\n      });\n    }\n  }, {\n    key: \"_addAriaAndCollapsedClass\",\n    value: function _addAriaAndCollapsedClass(triggerArray, isOpen) {\n      if (!triggerArray.length) {\n        return;\n      }\n\n      var _iterator11 = _createForOfIteratorHelper(triggerArray),\n          _step11;\n\n      try {\n        for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n          var element = _step11.value;\n          element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n          element.setAttribute('aria-expanded', isOpen);\n        }\n      } catch (err) {\n        _iterator11.e(err);\n      } finally {\n        _iterator11.f();\n      }\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$a;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$a;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$b;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      var _config = {};\n\n      if (typeof config === 'string' && /show|hide/.test(config)) {\n        _config.toggle = false;\n      }\n\n      return this.each(function () {\n        var data = Collapse.getOrCreateInstance(this, _config);\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n          }\n\n          data[config]();\n        }\n      });\n    }\n  }]);\n\n  return Collapse;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n  if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n    event.preventDefault();\n  }\n\n  var selector = getSelectorFromElement(this);\n  var selectorElements = SelectorEngine.find(selector);\n\n  var _iterator12 = _createForOfIteratorHelper(selectorElements),\n      _step12;\n\n  try {\n    for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n      var element = _step12.value;\n      Collapse.getOrCreateInstance(element, {\n        toggle: false\n      }).toggle();\n    }\n  } catch (err) {\n    _iterator12.e(err);\n  } finally {\n    _iterator12.f();\n  }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$a = 'dropdown';\nvar DATA_KEY$6 = 'bs.dropdown';\nvar EVENT_KEY$6 = \".\".concat(DATA_KEY$6);\nvar DATA_API_KEY$3 = '.data-api';\nvar ESCAPE_KEY$2 = 'Escape';\nvar TAB_KEY$1 = 'Tab';\nvar ARROW_UP_KEY$1 = 'ArrowUp';\nvar ARROW_DOWN_KEY$1 = 'ArrowDown';\nvar RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nvar EVENT_HIDE$5 = \"hide\".concat(EVENT_KEY$6);\nvar EVENT_HIDDEN$5 = \"hidden\".concat(EVENT_KEY$6);\nvar EVENT_SHOW$5 = \"show\".concat(EVENT_KEY$6);\nvar EVENT_SHOWN$5 = \"shown\".concat(EVENT_KEY$6);\nvar EVENT_CLICK_DATA_API$3 = \"click\".concat(EVENT_KEY$6).concat(DATA_API_KEY$3);\nvar EVENT_KEYDOWN_DATA_API = \"keydown\".concat(EVENT_KEY$6).concat(DATA_API_KEY$3);\nvar EVENT_KEYUP_DATA_API = \"keyup\".concat(EVENT_KEY$6).concat(DATA_API_KEY$3);\nvar CLASS_NAME_SHOW$6 = 'show';\nvar CLASS_NAME_DROPUP = 'dropup';\nvar CLASS_NAME_DROPEND = 'dropend';\nvar CLASS_NAME_DROPSTART = 'dropstart';\nvar CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nvar CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nvar SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nvar SELECTOR_DATA_TOGGLE_SHOWN = \"\".concat(SELECTOR_DATA_TOGGLE$3, \".\").concat(CLASS_NAME_SHOW$6);\nvar SELECTOR_MENU = '.dropdown-menu';\nvar SELECTOR_NAVBAR = '.navbar';\nvar SELECTOR_NAVBAR_NAV = '.navbar-nav';\nvar SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nvar PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nvar PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nvar PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nvar PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nvar PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nvar PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nvar PLACEMENT_TOPCENTER = 'top';\nvar PLACEMENT_BOTTOMCENTER = 'bottom';\nvar Default$9 = {\n  autoClose: true,\n  boundary: 'clippingParents',\n  display: 'dynamic',\n  offset: [0, 2],\n  popperConfig: null,\n  reference: 'toggle'\n};\nvar DefaultType$9 = {\n  autoClose: '(boolean|string)',\n  boundary: '(string|element)',\n  display: 'string',\n  offset: '(array|string|function)',\n  popperConfig: '(null|object|function)',\n  reference: '(string|element|object)'\n};\n/**\n * Class definition\n */\n\nvar Dropdown = /*#__PURE__*/function (_BaseComponent5) {\n  _inherits(Dropdown, _BaseComponent5);\n\n  var _super7 = _createSuper(Dropdown);\n\n  function Dropdown(element, config) {\n    var _this15;\n\n    _classCallCheck(this, Dropdown);\n\n    _this15 = _super7.call(this, element, config);\n    _this15._popper = null;\n    _this15._parent = _this15._element.parentNode; // dropdown wrapper\n    // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n    _this15._menu = SelectorEngine.next(_this15._element, SELECTOR_MENU)[0] || SelectorEngine.prev(_this15._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, _this15._parent);\n    _this15._inNavbar = _this15._detectNavbar();\n    return _this15;\n  } // Getters\n\n\n  _createClass(Dropdown, [{\n    key: \"toggle\",\n    value: // Public\n    function toggle() {\n      return this._isShown() ? this.hide() : this.show();\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      if (isDisabled(this._element) || this._isShown()) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n\n      if (showEvent.defaultPrevented) {\n        return;\n      }\n\n      this._createPopper(); // If this is a touch-enabled device we add extra\n      // empty 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\n\n      if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n        var _ref6;\n\n        var _iterator13 = _createForOfIteratorHelper((_ref6 = []).concat.apply(_ref6, _toConsumableArray(document.body.children))),\n            _step13;\n\n        try {\n          for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n            var element = _step13.value;\n            EventHandler.on(element, 'mouseover', noop);\n          }\n        } catch (err) {\n          _iterator13.e(err);\n        } finally {\n          _iterator13.f();\n        }\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n      this._element.classList.add(CLASS_NAME_SHOW$6);\n\n      EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      if (isDisabled(this._element) || !this._isShown()) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n\n      this._completeHide(relatedTarget);\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      _get(_getPrototypeOf(Dropdown.prototype), \"dispose\", this).call(this);\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper) {\n        this._popper.update();\n      }\n    } // Private\n\n  }, {\n    key: \"_completeHide\",\n    value: function _completeHide(relatedTarget) {\n      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n\n      if (hideEvent.defaultPrevented) {\n        return;\n      } // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n\n      if ('ontouchstart' in document.documentElement) {\n        var _ref7;\n\n        var _iterator14 = _createForOfIteratorHelper((_ref7 = []).concat.apply(_ref7, _toConsumableArray(document.body.children))),\n            _step14;\n\n        try {\n          for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n            var element = _step14.value;\n            EventHandler.off(element, 'mouseover', noop);\n          }\n        } catch (err) {\n          _iterator14.e(err);\n        } finally {\n          _iterator14.f();\n        }\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n      this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n      this._element.setAttribute('aria-expanded', 'false');\n\n      Manipulator.removeDataAttribute(this._menu, 'popper');\n      EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n    }\n  }, {\n    key: \"_getConfig\",\n    value: function _getConfig(config) {\n      config = _get(_getPrototypeOf(Dropdown.prototype), \"_getConfig\", this).call(this, config);\n\n      if (_typeof(config.reference) === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n        // Popper virtual elements require a getBoundingClientRect method\n        throw new TypeError(\"\".concat(NAME$a.toUpperCase(), \": Option \\\"reference\\\" provided type \\\"object\\\" without a required \\\"getBoundingClientRect\\\" method.\"));\n      }\n\n      return config;\n    }\n  }, {\n    key: \"_createPopper\",\n    value: function _createPopper() {\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n      }\n\n      var referenceElement = this._element;\n\n      if (this._config.reference === 'parent') {\n        referenceElement = this._parent;\n      } else if (isElement(this._config.reference)) {\n        referenceElement = getElement(this._config.reference);\n      } else if (_typeof(this._config.reference) === 'object') {\n        referenceElement = this._config.reference;\n      }\n\n      var popperConfig = this._getPopperConfig();\n\n      this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n    }\n  }, {\n    key: \"_isShown\",\n    value: function _isShown() {\n      return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n    }\n  }, {\n    key: \"_getPlacement\",\n    value: function _getPlacement() {\n      var parentDropdown = this._parent;\n\n      if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n        return PLACEMENT_RIGHT;\n      }\n\n      if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n        return PLACEMENT_LEFT;\n      }\n\n      if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n        return PLACEMENT_TOPCENTER;\n      }\n\n      if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n        return PLACEMENT_BOTTOMCENTER;\n      } // We need to trim the value because custom properties can also include spaces\n\n\n      var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n      if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n        return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      }\n\n      return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n    }\n  }, {\n    key: \"_detectNavbar\",\n    value: function _detectNavbar() {\n      return this._element.closest(SELECTOR_NAVBAR) !== null;\n    }\n  }, {\n    key: \"_getOffset\",\n    value: function _getOffset() {\n      var _this16 = this;\n\n      var offset = this._config.offset;\n\n      if (typeof offset === 'string') {\n        return offset.split(',').map(function (value) {\n          return Number.parseInt(value, 10);\n        });\n      }\n\n      if (typeof offset === 'function') {\n        return function (popperData) {\n          return offset(popperData, _this16._element);\n        };\n      }\n\n      return offset;\n    }\n  }, {\n    key: \"_getPopperConfig\",\n    value: function _getPopperConfig() {\n      var defaultBsPopperConfig = {\n        placement: this._getPlacement(),\n        modifiers: [{\n          name: 'preventOverflow',\n          options: {\n            boundary: this._config.boundary\n          }\n        }, {\n          name: 'offset',\n          options: {\n            offset: this._getOffset()\n          }\n        }]\n      }; // Disable Popper if we have a static display or Dropdown is in Navbar\n\n      if (this._inNavbar || this._config.display === 'static') {\n        Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove\n\n        defaultBsPopperConfig.modifiers = [{\n          name: 'applyStyles',\n          enabled: false\n        }];\n      }\n\n      return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n    }\n  }, {\n    key: \"_selectMenuItem\",\n    value: function _selectMenuItem(_ref8) {\n      var key = _ref8.key,\n          target = _ref8.target;\n      var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(function (element) {\n        return isVisible(element);\n      });\n\n      if (!items.length) {\n        return;\n      } // if target isn't included in items (e.g. when expanding the dropdown)\n      // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n      getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$9;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$9;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$a;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Dropdown.getOrCreateInstance(this, config);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (typeof data[config] === 'undefined') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config]();\n      });\n    }\n  }, {\n    key: \"clearMenus\",\n    value: function clearMenus(event) {\n      if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n        return;\n      }\n\n      var openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n\n      var _iterator15 = _createForOfIteratorHelper(openToggles),\n          _step15;\n\n      try {\n        for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n          var toggle = _step15.value;\n          var context = Dropdown.getInstance(toggle);\n\n          if (!context || context._config.autoClose === false) {\n            continue;\n          }\n\n          var composedPath = event.composedPath();\n          var isMenuTarget = composedPath.includes(context._menu);\n\n          if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n            continue;\n          } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n          if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n            continue;\n          }\n\n          var relatedTarget = {\n            relatedTarget: context._element\n          };\n\n          if (event.type === 'click') {\n            relatedTarget.clickEvent = event;\n          }\n\n          context._completeHide(relatedTarget);\n        }\n      } catch (err) {\n        _iterator15.e(err);\n      } finally {\n        _iterator15.f();\n      }\n    }\n  }, {\n    key: \"dataApiKeydownHandler\",\n    value: function dataApiKeydownHandler(event) {\n      // If not an UP | DOWN | ESCAPE key => not a dropdown command\n      // If input/textarea && if key is other than ESCAPE => not a dropdown command\n      var isInput = /input|textarea/i.test(event.target.tagName);\n      var isEscapeEvent = event.key === ESCAPE_KEY$2;\n      var isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n\n      if (!isUpOrDownEvent && !isEscapeEvent) {\n        return;\n      }\n\n      if (isInput && !isEscapeEvent) {\n        return;\n      }\n\n      event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n      var getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n      var instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n      if (isUpOrDownEvent) {\n        event.stopPropagation();\n        instance.show();\n\n        instance._selectMenuItem(event);\n\n        return;\n      }\n\n      if (instance._isShown()) {\n        // else is escape and we check if it is shown\n        event.stopPropagation();\n        instance.hide();\n        getToggleButton.focus();\n      }\n    }\n  }]);\n\n  return Dropdown;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n  event.preventDefault();\n  Dropdown.getOrCreateInstance(this).toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nvar SELECTOR_STICKY_CONTENT = '.sticky-top';\nvar PROPERTY_PADDING = 'padding-right';\nvar PROPERTY_MARGIN = 'margin-right';\n/**\n * Class definition\n */\n\nvar ScrollBarHelper = /*#__PURE__*/function () {\n  function ScrollBarHelper() {\n    _classCallCheck(this, ScrollBarHelper);\n\n    this._element = document.body;\n  } // Public\n\n\n  _createClass(ScrollBarHelper, [{\n    key: \"getWidth\",\n    value: function getWidth() {\n      // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n      var documentWidth = document.documentElement.clientWidth;\n      return Math.abs(window.innerWidth - documentWidth);\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var width = this.getWidth();\n\n      this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n      this._setElementAttributes(this._element, PROPERTY_PADDING, function (calculatedValue) {\n        return calculatedValue + width;\n      }); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n      this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, function (calculatedValue) {\n        return calculatedValue + width;\n      });\n\n      this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, function (calculatedValue) {\n        return calculatedValue - width;\n      });\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this._resetElementAttributes(this._element, 'overflow');\n\n      this._resetElementAttributes(this._element, PROPERTY_PADDING);\n\n      this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n\n      this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n    }\n  }, {\n    key: \"isOverflowing\",\n    value: function isOverflowing() {\n      return this.getWidth() > 0;\n    } // Private\n\n  }, {\n    key: \"_disableOverFlow\",\n    value: function _disableOverFlow() {\n      this._saveInitialAttribute(this._element, 'overflow');\n\n      this._element.style.overflow = 'hidden';\n    }\n  }, {\n    key: \"_setElementAttributes\",\n    value: function _setElementAttributes(selector, styleProperty, callback) {\n      var _this17 = this;\n\n      var scrollbarWidth = this.getWidth();\n\n      var manipulationCallBack = function manipulationCallBack(element) {\n        if (element !== _this17._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n          return;\n        }\n\n        _this17._saveInitialAttribute(element, styleProperty);\n\n        var calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n        element.style.setProperty(styleProperty, \"\".concat(callback(Number.parseFloat(calculatedValue)), \"px\"));\n      };\n\n      this._applyManipulationCallback(selector, manipulationCallBack);\n    }\n  }, {\n    key: \"_saveInitialAttribute\",\n    value: function _saveInitialAttribute(element, styleProperty) {\n      var actualValue = element.style.getPropertyValue(styleProperty);\n\n      if (actualValue) {\n        Manipulator.setDataAttribute(element, styleProperty, actualValue);\n      }\n    }\n  }, {\n    key: \"_resetElementAttributes\",\n    value: function _resetElementAttributes(selector, styleProperty) {\n      var manipulationCallBack = function manipulationCallBack(element) {\n        var value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero\n\n        if (value === null) {\n          element.style.removeProperty(styleProperty);\n          return;\n        }\n\n        Manipulator.removeDataAttribute(element, styleProperty);\n        element.style.setProperty(styleProperty, value);\n      };\n\n      this._applyManipulationCallback(selector, manipulationCallBack);\n    }\n  }, {\n    key: \"_applyManipulationCallback\",\n    value: function _applyManipulationCallback(selector, callBack) {\n      if (isElement(selector)) {\n        callBack(selector);\n        return;\n      }\n\n      var _iterator16 = _createForOfIteratorHelper(SelectorEngine.find(selector, this._element)),\n          _step16;\n\n      try {\n        for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n          var sel = _step16.value;\n          callBack(sel);\n        }\n      } catch (err) {\n        _iterator16.e(err);\n      } finally {\n        _iterator16.f();\n      }\n    }\n  }]);\n\n  return ScrollBarHelper;\n}();\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar NAME$9 = 'backdrop';\nvar CLASS_NAME_FADE$4 = 'fade';\nvar CLASS_NAME_SHOW$5 = 'show';\nvar EVENT_MOUSEDOWN = \"mousedown.bs.\".concat(NAME$9);\nvar Default$8 = {\n  className: 'modal-backdrop',\n  clickCallback: null,\n  isAnimated: false,\n  isVisible: true,\n  // if false, we use the backdrop helper without adding any element to the dom\n  rootElement: 'body' // give the choice to place backdrop under different elements\n\n};\nvar DefaultType$8 = {\n  className: 'string',\n  clickCallback: '(function|null)',\n  isAnimated: 'boolean',\n  isVisible: 'boolean',\n  rootElement: '(element|string)'\n};\n/**\n * Class definition\n */\n\nvar Backdrop = /*#__PURE__*/function (_Config3) {\n  _inherits(Backdrop, _Config3);\n\n  var _super8 = _createSuper(Backdrop);\n\n  function Backdrop(config) {\n    var _this18;\n\n    _classCallCheck(this, Backdrop);\n\n    _this18 = _super8.call(this);\n    _this18._config = _this18._getConfig(config);\n    _this18._isAppended = false;\n    _this18._element = null;\n    return _this18;\n  } // Getters\n\n\n  _createClass(Backdrop, [{\n    key: \"show\",\n    value: // Public\n    function show(callback) {\n      if (!this._config.isVisible) {\n        execute(callback);\n        return;\n      }\n\n      this._append();\n\n      var element = this._getElement();\n\n      if (this._config.isAnimated) {\n        reflow(element);\n      }\n\n      element.classList.add(CLASS_NAME_SHOW$5);\n\n      this._emulateAnimation(function () {\n        execute(callback);\n      });\n    }\n  }, {\n    key: \"hide\",\n    value: function hide(callback) {\n      var _this19 = this;\n\n      if (!this._config.isVisible) {\n        execute(callback);\n        return;\n      }\n\n      this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n      this._emulateAnimation(function () {\n        _this19.dispose();\n\n        execute(callback);\n      });\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      if (!this._isAppended) {\n        return;\n      }\n\n      EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n      this._element.remove();\n\n      this._isAppended = false;\n    } // Private\n\n  }, {\n    key: \"_getElement\",\n    value: function _getElement() {\n      if (!this._element) {\n        var backdrop = document.createElement('div');\n        backdrop.className = this._config.className;\n\n        if (this._config.isAnimated) {\n          backdrop.classList.add(CLASS_NAME_FADE$4);\n        }\n\n        this._element = backdrop;\n      }\n\n      return this._element;\n    }\n  }, {\n    key: \"_configAfterMerge\",\n    value: function _configAfterMerge(config) {\n      // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n      config.rootElement = getElement(config.rootElement);\n      return config;\n    }\n  }, {\n    key: \"_append\",\n    value: function _append() {\n      var _this20 = this;\n\n      if (this._isAppended) {\n        return;\n      }\n\n      var element = this._getElement();\n\n      this._config.rootElement.append(element);\n\n      EventHandler.on(element, EVENT_MOUSEDOWN, function () {\n        execute(_this20._config.clickCallback);\n      });\n      this._isAppended = true;\n    }\n  }, {\n    key: \"_emulateAnimation\",\n    value: function _emulateAnimation(callback) {\n      executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n    }\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$8;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$8;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$9;\n    }\n  }]);\n\n  return Backdrop;\n}(Config);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar NAME$8 = 'focustrap';\nvar DATA_KEY$5 = 'bs.focustrap';\nvar EVENT_KEY$5 = \".\".concat(DATA_KEY$5);\nvar EVENT_FOCUSIN$2 = \"focusin\".concat(EVENT_KEY$5);\nvar EVENT_KEYDOWN_TAB = \"keydown.tab\".concat(EVENT_KEY$5);\nvar TAB_KEY = 'Tab';\nvar TAB_NAV_FORWARD = 'forward';\nvar TAB_NAV_BACKWARD = 'backward';\nvar Default$7 = {\n  autofocus: true,\n  trapElement: null // The element to trap focus inside of\n\n};\nvar DefaultType$7 = {\n  autofocus: 'boolean',\n  trapElement: 'element'\n};\n/**\n * Class definition\n */\n\nvar FocusTrap = /*#__PURE__*/function (_Config4) {\n  _inherits(FocusTrap, _Config4);\n\n  var _super9 = _createSuper(FocusTrap);\n\n  function FocusTrap(config) {\n    var _this21;\n\n    _classCallCheck(this, FocusTrap);\n\n    _this21 = _super9.call(this);\n    _this21._config = _this21._getConfig(config);\n    _this21._isActive = false;\n    _this21._lastTabNavDirection = null;\n    return _this21;\n  } // Getters\n\n\n  _createClass(FocusTrap, [{\n    key: \"activate\",\n    value: // Public\n    function activate() {\n      var _this22 = this;\n\n      if (this._isActive) {\n        return;\n      }\n\n      if (this._config.autofocus) {\n        this._config.trapElement.focus();\n      }\n\n      EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n\n      EventHandler.on(document, EVENT_FOCUSIN$2, function (event) {\n        return _this22._handleFocusin(event);\n      });\n      EventHandler.on(document, EVENT_KEYDOWN_TAB, function (event) {\n        return _this22._handleKeydown(event);\n      });\n      this._isActive = true;\n    }\n  }, {\n    key: \"deactivate\",\n    value: function deactivate() {\n      if (!this._isActive) {\n        return;\n      }\n\n      this._isActive = false;\n      EventHandler.off(document, EVENT_KEY$5);\n    } // Private\n\n  }, {\n    key: \"_handleFocusin\",\n    value: function _handleFocusin(event) {\n      var trapElement = this._config.trapElement;\n\n      if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n        return;\n      }\n\n      var elements = SelectorEngine.focusableChildren(trapElement);\n\n      if (elements.length === 0) {\n        trapElement.focus();\n      } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n        elements[elements.length - 1].focus();\n      } else {\n        elements[0].focus();\n      }\n    }\n  }, {\n    key: \"_handleKeydown\",\n    value: function _handleKeydown(event) {\n      if (event.key !== TAB_KEY) {\n        return;\n      }\n\n      this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n    }\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$7;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$7;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$8;\n    }\n  }]);\n\n  return FocusTrap;\n}(Config);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar NAME$7 = 'modal';\nvar DATA_KEY$4 = 'bs.modal';\nvar EVENT_KEY$4 = \".\".concat(DATA_KEY$4);\nvar DATA_API_KEY$2 = '.data-api';\nvar ESCAPE_KEY$1 = 'Escape';\nvar EVENT_HIDE$4 = \"hide\".concat(EVENT_KEY$4);\nvar EVENT_HIDE_PREVENTED$1 = \"hidePrevented\".concat(EVENT_KEY$4);\nvar EVENT_HIDDEN$4 = \"hidden\".concat(EVENT_KEY$4);\nvar EVENT_SHOW$4 = \"show\".concat(EVENT_KEY$4);\nvar EVENT_SHOWN$4 = \"shown\".concat(EVENT_KEY$4);\nvar EVENT_RESIZE$1 = \"resize\".concat(EVENT_KEY$4);\nvar EVENT_CLICK_DISMISS = \"click.dismiss\".concat(EVENT_KEY$4);\nvar EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\".concat(EVENT_KEY$4);\nvar EVENT_KEYDOWN_DISMISS$1 = \"keydown.dismiss\".concat(EVENT_KEY$4);\nvar EVENT_CLICK_DATA_API$2 = \"click\".concat(EVENT_KEY$4).concat(DATA_API_KEY$2);\nvar CLASS_NAME_OPEN = 'modal-open';\nvar CLASS_NAME_FADE$3 = 'fade';\nvar CLASS_NAME_SHOW$4 = 'show';\nvar CLASS_NAME_STATIC = 'modal-static';\nvar OPEN_SELECTOR$1 = '.modal.show';\nvar SELECTOR_DIALOG = '.modal-dialog';\nvar SELECTOR_MODAL_BODY = '.modal-body';\nvar SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nvar Default$6 = {\n  backdrop: true,\n  focus: true,\n  keyboard: true\n};\nvar DefaultType$6 = {\n  backdrop: '(boolean|string)',\n  focus: 'boolean',\n  keyboard: 'boolean'\n};\n/**\n * Class definition\n */\n\nvar Modal = /*#__PURE__*/function (_BaseComponent6) {\n  _inherits(Modal, _BaseComponent6);\n\n  var _super10 = _createSuper(Modal);\n\n  function Modal(element, config) {\n    var _this23;\n\n    _classCallCheck(this, Modal);\n\n    _this23 = _super10.call(this, element, config);\n    _this23._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, _this23._element);\n    _this23._backdrop = _this23._initializeBackDrop();\n    _this23._focustrap = _this23._initializeFocusTrap();\n    _this23._isShown = false;\n    _this23._isTransitioning = false;\n    _this23._scrollBar = new ScrollBarHelper();\n\n    _this23._addEventListeners();\n\n    return _this23;\n  } // Getters\n\n\n  _createClass(Modal, [{\n    key: \"toggle\",\n    value: // Public\n    function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    }\n  }, {\n    key: \"show\",\n    value: function show(relatedTarget) {\n      var _this24 = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n        relatedTarget: relatedTarget\n      });\n\n      if (showEvent.defaultPrevented) {\n        return;\n      }\n\n      this._isShown = true;\n      this._isTransitioning = true;\n\n      this._scrollBar.hide();\n\n      document.body.classList.add(CLASS_NAME_OPEN);\n\n      this._adjustDialog();\n\n      this._backdrop.show(function () {\n        return _this24._showElement(relatedTarget);\n      });\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var _this25 = this;\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n\n      if (hideEvent.defaultPrevented) {\n        return;\n      }\n\n      this._isShown = false;\n      this._isTransitioning = true;\n\n      this._focustrap.deactivate();\n\n      this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n      this._queueCallback(function () {\n        return _this25._hideModal();\n      }, this._element, this._isAnimated());\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      for (var _i7 = 0, _arr2 = [window, this._dialog]; _i7 < _arr2.length; _i7++) {\n        var htmlElement = _arr2[_i7];\n        EventHandler.off(htmlElement, EVENT_KEY$4);\n      }\n\n      this._backdrop.dispose();\n\n      this._focustrap.deactivate();\n\n      _get(_getPrototypeOf(Modal.prototype), \"dispose\", this).call(this);\n    }\n  }, {\n    key: \"handleUpdate\",\n    value: function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n\n  }, {\n    key: \"_initializeBackDrop\",\n    value: function _initializeBackDrop() {\n      return new Backdrop({\n        isVisible: Boolean(this._config.backdrop),\n        // 'static' option will be translated to true, and booleans will keep their value,\n        isAnimated: this._isAnimated()\n      });\n    }\n  }, {\n    key: \"_initializeFocusTrap\",\n    value: function _initializeFocusTrap() {\n      return new FocusTrap({\n        trapElement: this._element\n      });\n    }\n  }, {\n    key: \"_showElement\",\n    value: function _showElement(relatedTarget) {\n      var _this26 = this;\n\n      // try to append dynamic modal\n      if (!document.body.contains(this._element)) {\n        document.body.append(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      this._element.setAttribute('role', 'dialog');\n\n      this._element.scrollTop = 0;\n      var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n      if (modalBody) {\n        modalBody.scrollTop = 0;\n      }\n\n      reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_SHOW$4);\n\n      var transitionComplete = function transitionComplete() {\n        if (_this26._config.focus) {\n          _this26._focustrap.activate();\n        }\n\n        _this26._isTransitioning = false;\n        EventHandler.trigger(_this26._element, EVENT_SHOWN$4, {\n          relatedTarget: relatedTarget\n        });\n      };\n\n      this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n    }\n  }, {\n    key: \"_addEventListeners\",\n    value: function _addEventListeners() {\n      var _this27 = this;\n\n      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, function (event) {\n        if (event.key !== ESCAPE_KEY$1) {\n          return;\n        }\n\n        if (_this27._config.keyboard) {\n          event.preventDefault();\n\n          _this27.hide();\n\n          return;\n        }\n\n        _this27._triggerBackdropTransition();\n      });\n      EventHandler.on(window, EVENT_RESIZE$1, function () {\n        if (_this27._isShown && !_this27._isTransitioning) {\n          _this27._adjustDialog();\n        }\n      });\n      EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, function (event) {\n        // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n        EventHandler.one(_this27._element, EVENT_CLICK_DISMISS, function (event2) {\n          if (_this27._element !== event.target || _this27._element !== event2.target) {\n            return;\n          }\n\n          if (_this27._config.backdrop === 'static') {\n            _this27._triggerBackdropTransition();\n\n            return;\n          }\n\n          if (_this27._config.backdrop) {\n            _this27.hide();\n          }\n        });\n      });\n    }\n  }, {\n    key: \"_hideModal\",\n    value: function _hideModal() {\n      var _this28 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._element.removeAttribute('role');\n\n      this._isTransitioning = false;\n\n      this._backdrop.hide(function () {\n        document.body.classList.remove(CLASS_NAME_OPEN);\n\n        _this28._resetAdjustments();\n\n        _this28._scrollBar.reset();\n\n        EventHandler.trigger(_this28._element, EVENT_HIDDEN$4);\n      });\n    }\n  }, {\n    key: \"_isAnimated\",\n    value: function _isAnimated() {\n      return this._element.classList.contains(CLASS_NAME_FADE$3);\n    }\n  }, {\n    key: \"_triggerBackdropTransition\",\n    value: function _triggerBackdropTransition() {\n      var _this29 = this;\n\n      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n\n      if (hideEvent.defaultPrevented) {\n        return;\n      }\n\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n      var initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed\n\n      if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n        return;\n      }\n\n      if (!isModalOverflowing) {\n        this._element.style.overflowY = 'hidden';\n      }\n\n      this._element.classList.add(CLASS_NAME_STATIC);\n\n      this._queueCallback(function () {\n        _this29._element.classList.remove(CLASS_NAME_STATIC);\n\n        _this29._queueCallback(function () {\n          _this29._element.style.overflowY = initialOverflowY;\n        }, _this29._dialog);\n      }, this._dialog);\n\n      this._element.focus();\n    }\n    /**\n     * The following methods are used to handle overflowing modals\n     */\n\n  }, {\n    key: \"_adjustDialog\",\n    value: function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      var scrollbarWidth = this._scrollBar.getWidth();\n\n      var isBodyOverflowing = scrollbarWidth > 0;\n\n      if (isBodyOverflowing && !isModalOverflowing) {\n        var property = isRTL() ? 'paddingLeft' : 'paddingRight';\n        this._element.style[property] = \"\".concat(scrollbarWidth, \"px\");\n      }\n\n      if (!isBodyOverflowing && isModalOverflowing) {\n        var _property = isRTL() ? 'paddingRight' : 'paddingLeft';\n\n        this._element.style[_property] = \"\".concat(scrollbarWidth, \"px\");\n      }\n    }\n  }, {\n    key: \"_resetAdjustments\",\n    value: function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$6;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$6;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$7;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = Modal.getOrCreateInstance(this, config);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (typeof data[config] === 'undefined') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config](relatedTarget);\n      });\n    }\n  }]);\n\n  return Modal;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n  var _this30 = this;\n\n  var target = getElementFromSelector(this);\n\n  if (['A', 'AREA'].includes(this.tagName)) {\n    event.preventDefault();\n  }\n\n  EventHandler.one(target, EVENT_SHOW$4, function (showEvent) {\n    if (showEvent.defaultPrevented) {\n      // only register focus restorer if modal will actually get shown\n      return;\n    }\n\n    EventHandler.one(target, EVENT_HIDDEN$4, function () {\n      if (isVisible(_this30)) {\n        _this30.focus();\n      }\n    });\n  }); // avoid conflict when clicking modal toggler while another one is open\n\n  var alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n  if (alreadyOpen) {\n    Modal.getInstance(alreadyOpen).hide();\n  }\n\n  var data = Modal.getOrCreateInstance(target);\n  data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$6 = 'offcanvas';\nvar DATA_KEY$3 = 'bs.offcanvas';\nvar EVENT_KEY$3 = \".\".concat(DATA_KEY$3);\nvar DATA_API_KEY$1 = '.data-api';\nvar EVENT_LOAD_DATA_API$2 = \"load\".concat(EVENT_KEY$3).concat(DATA_API_KEY$1);\nvar ESCAPE_KEY = 'Escape';\nvar CLASS_NAME_SHOW$3 = 'show';\nvar CLASS_NAME_SHOWING$1 = 'showing';\nvar CLASS_NAME_HIDING = 'hiding';\nvar CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nvar OPEN_SELECTOR = '.offcanvas.show';\nvar EVENT_SHOW$3 = \"show\".concat(EVENT_KEY$3);\nvar EVENT_SHOWN$3 = \"shown\".concat(EVENT_KEY$3);\nvar EVENT_HIDE$3 = \"hide\".concat(EVENT_KEY$3);\nvar EVENT_HIDE_PREVENTED = \"hidePrevented\".concat(EVENT_KEY$3);\nvar EVENT_HIDDEN$3 = \"hidden\".concat(EVENT_KEY$3);\nvar EVENT_RESIZE = \"resize\".concat(EVENT_KEY$3);\nvar EVENT_CLICK_DATA_API$1 = \"click\".concat(EVENT_KEY$3).concat(DATA_API_KEY$1);\nvar EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\".concat(EVENT_KEY$3);\nvar SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nvar Default$5 = {\n  backdrop: true,\n  keyboard: true,\n  scroll: false\n};\nvar DefaultType$5 = {\n  backdrop: '(boolean|string)',\n  keyboard: 'boolean',\n  scroll: 'boolean'\n};\n/**\n * Class definition\n */\n\nvar Offcanvas = /*#__PURE__*/function (_BaseComponent7) {\n  _inherits(Offcanvas, _BaseComponent7);\n\n  var _super11 = _createSuper(Offcanvas);\n\n  function Offcanvas(element, config) {\n    var _this31;\n\n    _classCallCheck(this, Offcanvas);\n\n    _this31 = _super11.call(this, element, config);\n    _this31._isShown = false;\n    _this31._backdrop = _this31._initializeBackDrop();\n    _this31._focustrap = _this31._initializeFocusTrap();\n\n    _this31._addEventListeners();\n\n    return _this31;\n  } // Getters\n\n\n  _createClass(Offcanvas, [{\n    key: \"toggle\",\n    value: // Public\n    function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    }\n  }, {\n    key: \"show\",\n    value: function show(relatedTarget) {\n      var _this32 = this;\n\n      if (this._isShown) {\n        return;\n      }\n\n      var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n        relatedTarget: relatedTarget\n      });\n\n      if (showEvent.defaultPrevented) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._backdrop.show();\n\n      if (!this._config.scroll) {\n        new ScrollBarHelper().hide();\n      }\n\n      this._element.setAttribute('aria-modal', true);\n\n      this._element.setAttribute('role', 'dialog');\n\n      this._element.classList.add(CLASS_NAME_SHOWING$1);\n\n      var completeCallBack = function completeCallBack() {\n        if (!_this32._config.scroll || _this32._config.backdrop) {\n          _this32._focustrap.activate();\n        }\n\n        _this32._element.classList.add(CLASS_NAME_SHOW$3);\n\n        _this32._element.classList.remove(CLASS_NAME_SHOWING$1);\n\n        EventHandler.trigger(_this32._element, EVENT_SHOWN$3, {\n          relatedTarget: relatedTarget\n        });\n      };\n\n      this._queueCallback(completeCallBack, this._element, true);\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var _this33 = this;\n\n      if (!this._isShown) {\n        return;\n      }\n\n      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n      if (hideEvent.defaultPrevented) {\n        return;\n      }\n\n      this._focustrap.deactivate();\n\n      this._element.blur();\n\n      this._isShown = false;\n\n      this._element.classList.add(CLASS_NAME_HIDING);\n\n      this._backdrop.hide();\n\n      var completeCallback = function completeCallback() {\n        _this33._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n\n        _this33._element.removeAttribute('aria-modal');\n\n        _this33._element.removeAttribute('role');\n\n        if (!_this33._config.scroll) {\n          new ScrollBarHelper().reset();\n        }\n\n        EventHandler.trigger(_this33._element, EVENT_HIDDEN$3);\n      };\n\n      this._queueCallback(completeCallback, this._element, true);\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      this._backdrop.dispose();\n\n      this._focustrap.deactivate();\n\n      _get(_getPrototypeOf(Offcanvas.prototype), \"dispose\", this).call(this);\n    } // Private\n\n  }, {\n    key: \"_initializeBackDrop\",\n    value: function _initializeBackDrop() {\n      var _this34 = this;\n\n      var clickCallback = function clickCallback() {\n        if (_this34._config.backdrop === 'static') {\n          EventHandler.trigger(_this34._element, EVENT_HIDE_PREVENTED);\n          return;\n        }\n\n        _this34.hide();\n      }; // 'static' option will be translated to true, and booleans will keep their value\n\n\n      var isVisible = Boolean(this._config.backdrop);\n      return new Backdrop({\n        className: CLASS_NAME_BACKDROP,\n        isVisible: isVisible,\n        isAnimated: true,\n        rootElement: this._element.parentNode,\n        clickCallback: isVisible ? clickCallback : null\n      });\n    }\n  }, {\n    key: \"_initializeFocusTrap\",\n    value: function _initializeFocusTrap() {\n      return new FocusTrap({\n        trapElement: this._element\n      });\n    }\n  }, {\n    key: \"_addEventListeners\",\n    value: function _addEventListeners() {\n      var _this35 = this;\n\n      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {\n        if (event.key !== ESCAPE_KEY) {\n          return;\n        }\n\n        if (!_this35._config.keyboard) {\n          EventHandler.trigger(_this35._element, EVENT_HIDE_PREVENTED);\n          return;\n        }\n\n        _this35.hide();\n      });\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$5;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$5;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$6;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Offcanvas.getOrCreateInstance(this, config);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config](this);\n      });\n    }\n  }]);\n\n  return Offcanvas;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n  var _this36 = this;\n\n  var target = getElementFromSelector(this);\n\n  if (['A', 'AREA'].includes(this.tagName)) {\n    event.preventDefault();\n  }\n\n  if (isDisabled(this)) {\n    return;\n  }\n\n  EventHandler.one(target, EVENT_HIDDEN$3, function () {\n    // focus on trigger when it is closed\n    if (isVisible(_this36)) {\n      _this36.focus();\n    }\n  }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n  var alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n  if (alreadyOpen && alreadyOpen !== target) {\n    Offcanvas.getInstance(alreadyOpen).hide();\n  }\n\n  var data = Offcanvas.getOrCreateInstance(target);\n  data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, function () {\n  var _iterator17 = _createForOfIteratorHelper(SelectorEngine.find(OPEN_SELECTOR)),\n      _step17;\n\n  try {\n    for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n      var selector = _step17.value;\n      Offcanvas.getOrCreateInstance(selector).show();\n    }\n  } catch (err) {\n    _iterator17.e(err);\n  } finally {\n    _iterator17.f();\n  }\n});\nEventHandler.on(window, EVENT_RESIZE, function () {\n  var _iterator18 = _createForOfIteratorHelper(SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')),\n      _step18;\n\n  try {\n    for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n      var element = _step18.value;\n\n      if (getComputedStyle(element).position !== 'fixed') {\n        Offcanvas.getOrCreateInstance(element).hide();\n      }\n    }\n  } catch (err) {\n    _iterator18.e(err);\n  } finally {\n    _iterator18.f();\n  }\n});\nenableDismissTrigger(Offcanvas);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nvar ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nvar SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nvar DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nvar allowedAttribute = function allowedAttribute(attribute, allowedAttributeList) {\n  var attributeName = attribute.nodeName.toLowerCase();\n\n  if (allowedAttributeList.includes(attributeName)) {\n    if (uriAttributes.has(attributeName)) {\n      return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n    }\n\n    return true;\n  } // Check if a regular expression validates the attribute.\n\n\n  return allowedAttributeList.filter(function (attributeRegex) {\n    return attributeRegex instanceof RegExp;\n  }).some(function (regex) {\n    return regex.test(attributeName);\n  });\n};\n\nvar DefaultAllowlist = {\n  // Global attributes allowed on any supplied element below.\n  '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n  a: ['target', 'href', 'title', 'rel'],\n  area: [],\n  b: [],\n  br: [],\n  col: [],\n  code: [],\n  div: [],\n  em: [],\n  hr: [],\n  h1: [],\n  h2: [],\n  h3: [],\n  h4: [],\n  h5: [],\n  h6: [],\n  i: [],\n  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n  li: [],\n  ol: [],\n  p: [],\n  pre: [],\n  s: [],\n  small: [],\n  span: [],\n  sub: [],\n  sup: [],\n  strong: [],\n  u: [],\n  ul: []\n};\n\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n  var _ref9;\n\n  if (!unsafeHtml.length) {\n    return unsafeHtml;\n  }\n\n  if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n    return sanitizeFunction(unsafeHtml);\n  }\n\n  var domParser = new window.DOMParser();\n  var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n\n  var elements = (_ref9 = []).concat.apply(_ref9, _toConsumableArray(createdDocument.body.querySelectorAll('*')));\n\n  var _iterator19 = _createForOfIteratorHelper(elements),\n      _step19;\n\n  try {\n    for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n      var _ref10;\n\n      var element = _step19.value;\n      var elementName = element.nodeName.toLowerCase();\n\n      if (!Object.keys(allowList).includes(elementName)) {\n        element.remove();\n        continue;\n      }\n\n      var attributeList = (_ref10 = []).concat.apply(_ref10, _toConsumableArray(element.attributes));\n\n      var allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n\n      var _iterator20 = _createForOfIteratorHelper(attributeList),\n          _step20;\n\n      try {\n        for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n          var attribute = _step20.value;\n\n          if (!allowedAttribute(attribute, allowedAttributes)) {\n            element.removeAttribute(attribute.nodeName);\n          }\n        }\n      } catch (err) {\n        _iterator20.e(err);\n      } finally {\n        _iterator20.f();\n      }\n    }\n  } catch (err) {\n    _iterator19.e(err);\n  } finally {\n    _iterator19.f();\n  }\n\n  return createdDocument.body.innerHTML;\n}\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar NAME$5 = 'TemplateFactory';\nvar Default$4 = {\n  allowList: DefaultAllowlist,\n  content: {},\n  // { selector : text ,  selector2 : text2 , }\n  extraClass: '',\n  html: false,\n  sanitize: true,\n  sanitizeFn: null,\n  template: '<div></div>'\n};\nvar DefaultType$4 = {\n  allowList: 'object',\n  content: 'object',\n  extraClass: '(string|function)',\n  html: 'boolean',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  template: 'string'\n};\nvar DefaultContentType = {\n  entry: '(string|element|function|null)',\n  selector: '(string|element)'\n};\n/**\n * Class definition\n */\n\nvar TemplateFactory = /*#__PURE__*/function (_Config5) {\n  _inherits(TemplateFactory, _Config5);\n\n  var _super12 = _createSuper(TemplateFactory);\n\n  function TemplateFactory(config) {\n    var _this37;\n\n    _classCallCheck(this, TemplateFactory);\n\n    _this37 = _super12.call(this);\n    _this37._config = _this37._getConfig(config);\n    return _this37;\n  } // Getters\n\n\n  _createClass(TemplateFactory, [{\n    key: \"getContent\",\n    value: // Public\n    function getContent() {\n      var _this38 = this;\n\n      return Object.values(this._config.content).map(function (config) {\n        return _this38._resolvePossibleFunction(config);\n      }).filter(Boolean);\n    }\n  }, {\n    key: \"hasContent\",\n    value: function hasContent() {\n      return this.getContent().length > 0;\n    }\n  }, {\n    key: \"changeContent\",\n    value: function changeContent(content) {\n      this._checkContent(content);\n\n      this._config.content = _objectSpread(_objectSpread({}, this._config.content), content);\n      return this;\n    }\n  }, {\n    key: \"toHtml\",\n    value: function toHtml() {\n      var templateWrapper = document.createElement('div');\n      templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n\n      for (var _i8 = 0, _Object$entries2 = Object.entries(this._config.content); _i8 < _Object$entries2.length; _i8++) {\n        var _ref13 = _Object$entries2[_i8];\n\n        var _ref12 = _slicedToArray(_ref13, 2);\n\n        var selector = _ref12[0];\n        var text = _ref12[1];\n\n        this._setContent(templateWrapper, text, selector);\n      }\n\n      var template = templateWrapper.children[0];\n\n      var extraClass = this._resolvePossibleFunction(this._config.extraClass);\n\n      if (extraClass) {\n        var _template$classList;\n\n        (_template$classList = template.classList).add.apply(_template$classList, _toConsumableArray(extraClass.split(' ')));\n      }\n\n      return template;\n    } // Private\n\n  }, {\n    key: \"_typeCheckConfig\",\n    value: function _typeCheckConfig(config) {\n      _get(_getPrototypeOf(TemplateFactory.prototype), \"_typeCheckConfig\", this).call(this, config);\n\n      this._checkContent(config.content);\n    }\n  }, {\n    key: \"_checkContent\",\n    value: function _checkContent(arg) {\n      for (var _i9 = 0, _Object$entries3 = Object.entries(arg); _i9 < _Object$entries3.length; _i9++) {\n        var _ref16 = _Object$entries3[_i9];\n\n        var _ref15 = _slicedToArray(_ref16, 2);\n\n        var selector = _ref15[0];\n        var content = _ref15[1];\n\n        _get(_getPrototypeOf(TemplateFactory.prototype), \"_typeCheckConfig\", this).call(this, {\n          selector: selector,\n          entry: content\n        }, DefaultContentType);\n      }\n    }\n  }, {\n    key: \"_setContent\",\n    value: function _setContent(template, content, selector) {\n      var templateElement = SelectorEngine.findOne(selector, template);\n\n      if (!templateElement) {\n        return;\n      }\n\n      content = this._resolvePossibleFunction(content);\n\n      if (!content) {\n        templateElement.remove();\n        return;\n      }\n\n      if (isElement(content)) {\n        this._putElementInTemplate(getElement(content), templateElement);\n\n        return;\n      }\n\n      if (this._config.html) {\n        templateElement.innerHTML = this._maybeSanitize(content);\n        return;\n      }\n\n      templateElement.textContent = content;\n    }\n  }, {\n    key: \"_maybeSanitize\",\n    value: function _maybeSanitize(arg) {\n      return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n    }\n  }, {\n    key: \"_resolvePossibleFunction\",\n    value: function _resolvePossibleFunction(arg) {\n      return typeof arg === 'function' ? arg(this) : arg;\n    }\n  }, {\n    key: \"_putElementInTemplate\",\n    value: function _putElementInTemplate(element, templateElement) {\n      if (this._config.html) {\n        templateElement.innerHTML = '';\n        templateElement.append(element);\n        return;\n      }\n\n      templateElement.textContent = element.textContent;\n    }\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$4;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$4;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$5;\n    }\n  }]);\n\n  return TemplateFactory;\n}(Config);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\n\nvar NAME$4 = 'tooltip';\nvar DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nvar CLASS_NAME_FADE$2 = 'fade';\nvar CLASS_NAME_MODAL = 'modal';\nvar CLASS_NAME_SHOW$2 = 'show';\nvar SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nvar SELECTOR_MODAL = \".\".concat(CLASS_NAME_MODAL);\nvar EVENT_MODAL_HIDE = 'hide.bs.modal';\nvar TRIGGER_HOVER = 'hover';\nvar TRIGGER_FOCUS = 'focus';\nvar TRIGGER_CLICK = 'click';\nvar TRIGGER_MANUAL = 'manual';\nvar EVENT_HIDE$2 = 'hide';\nvar EVENT_HIDDEN$2 = 'hidden';\nvar EVENT_SHOW$2 = 'show';\nvar EVENT_SHOWN$2 = 'shown';\nvar EVENT_INSERTED = 'inserted';\nvar EVENT_CLICK$1 = 'click';\nvar EVENT_FOCUSIN$1 = 'focusin';\nvar EVENT_FOCUSOUT$1 = 'focusout';\nvar EVENT_MOUSEENTER = 'mouseenter';\nvar EVENT_MOUSELEAVE = 'mouseleave';\nvar AttachmentMap = {\n  AUTO: 'auto',\n  TOP: 'top',\n  RIGHT: isRTL() ? 'left' : 'right',\n  BOTTOM: 'bottom',\n  LEFT: isRTL() ? 'right' : 'left'\n};\nvar Default$3 = {\n  allowList: DefaultAllowlist,\n  animation: true,\n  boundary: 'clippingParents',\n  container: false,\n  customClass: '',\n  delay: 0,\n  fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n  html: false,\n  offset: [0, 0],\n  placement: 'top',\n  popperConfig: null,\n  sanitize: true,\n  sanitizeFn: null,\n  selector: false,\n  template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"tooltip-arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n  title: '',\n  trigger: 'hover focus'\n};\nvar DefaultType$3 = {\n  allowList: 'object',\n  animation: 'boolean',\n  boundary: '(string|element)',\n  container: '(string|element|boolean)',\n  customClass: '(string|function)',\n  delay: '(number|object)',\n  fallbackPlacements: 'array',\n  html: 'boolean',\n  offset: '(array|string|function)',\n  placement: '(string|function)',\n  popperConfig: '(null|object|function)',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  selector: '(string|boolean)',\n  template: 'string',\n  title: '(string|element|function)',\n  trigger: 'string'\n};\n/**\n * Class definition\n */\n\nvar Tooltip = /*#__PURE__*/function (_BaseComponent8) {\n  _inherits(Tooltip, _BaseComponent8);\n\n  var _super13 = _createSuper(Tooltip);\n\n  function Tooltip(element, config) {\n    var _this39;\n\n    _classCallCheck(this, Tooltip);\n\n    if (typeof Popper === 'undefined') {\n      throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n    }\n\n    _this39 = _super13.call(this, element, config); // Private\n\n    _this39._isEnabled = true;\n    _this39._timeout = 0;\n    _this39._isHovered = null;\n    _this39._activeTrigger = {};\n    _this39._popper = null;\n    _this39._templateFactory = null;\n    _this39._newContent = null; // Protected\n\n    _this39.tip = null;\n\n    _this39._setListeners();\n\n    if (!_this39._config.selector) {\n      _this39._fixTitle();\n    }\n\n    return _this39;\n  } // Getters\n\n\n  _createClass(Tooltip, [{\n    key: \"enable\",\n    value: // Public\n    function enable() {\n      this._isEnabled = true;\n    }\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      this._isEnabled = false;\n    }\n  }, {\n    key: \"toggleEnabled\",\n    value: function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    }\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      this._activeTrigger.click = !this._activeTrigger.click;\n\n      if (this._isShown()) {\n        this._leave();\n\n        return;\n      }\n\n      this._enter();\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      clearTimeout(this._timeout);\n      EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n      if (this._element.getAttribute('data-bs-original-title')) {\n        this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n      }\n\n      this._disposePopper();\n\n      _get(_getPrototypeOf(Tooltip.prototype), \"dispose\", this).call(this);\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this40 = this;\n\n      if (this._element.style.display === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      if (!(this._isWithContent() && this._isEnabled)) {\n        return;\n      }\n\n      var showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n      var shadowRoot = findShadowRoot(this._element);\n\n      var isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n\n      if (showEvent.defaultPrevented || !isInTheDom) {\n        return;\n      } // todo v6 remove this OR make it optional\n\n\n      this._disposePopper();\n\n      var tip = this._getTipElement();\n\n      this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n\n      var container = this._config.container;\n\n      if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n        container.append(tip);\n        EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n      }\n\n      this._popper = this._createPopper(tip);\n      tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra\n      // empty 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\n      if ('ontouchstart' in document.documentElement) {\n        var _ref17;\n\n        var _iterator21 = _createForOfIteratorHelper((_ref17 = []).concat.apply(_ref17, _toConsumableArray(document.body.children))),\n            _step21;\n\n        try {\n          for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n            var element = _step21.value;\n            EventHandler.on(element, 'mouseover', noop);\n          }\n        } catch (err) {\n          _iterator21.e(err);\n        } finally {\n          _iterator21.f();\n        }\n      }\n\n      var complete = function complete() {\n        EventHandler.trigger(_this40._element, _this40.constructor.eventName(EVENT_SHOWN$2));\n\n        if (_this40._isHovered === false) {\n          _this40._leave();\n        }\n\n        _this40._isHovered = false;\n      };\n\n      this._queueCallback(complete, this.tip, this._isAnimated());\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var _this41 = this;\n\n      if (!this._isShown()) {\n        return;\n      }\n\n      var hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n\n      if (hideEvent.defaultPrevented) {\n        return;\n      }\n\n      var tip = this._getTipElement();\n\n      tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        var _ref18;\n\n        var _iterator22 = _createForOfIteratorHelper((_ref18 = []).concat.apply(_ref18, _toConsumableArray(document.body.children))),\n            _step22;\n\n        try {\n          for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n            var element = _step22.value;\n            EventHandler.off(element, 'mouseover', noop);\n          }\n        } catch (err) {\n          _iterator22.e(err);\n        } finally {\n          _iterator22.f();\n        }\n      }\n\n      this._activeTrigger[TRIGGER_CLICK] = false;\n      this._activeTrigger[TRIGGER_FOCUS] = false;\n      this._activeTrigger[TRIGGER_HOVER] = false;\n      this._isHovered = null; // it is a trick to support manual triggering\n\n      var complete = function complete() {\n        if (_this41._isWithActiveTrigger()) {\n          return;\n        }\n\n        if (!_this41._isHovered) {\n          _this41._disposePopper();\n        }\n\n        _this41._element.removeAttribute('aria-describedby');\n\n        EventHandler.trigger(_this41._element, _this41.constructor.eventName(EVENT_HIDDEN$2));\n      };\n\n      this._queueCallback(complete, this.tip, this._isAnimated());\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      if (this._popper) {\n        this._popper.update();\n      }\n    } // Protected\n\n  }, {\n    key: \"_isWithContent\",\n    value: function _isWithContent() {\n      return Boolean(this._getTitle());\n    }\n  }, {\n    key: \"_getTipElement\",\n    value: function _getTipElement() {\n      if (!this.tip) {\n        this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n      }\n\n      return this.tip;\n    }\n  }, {\n    key: \"_createTipElement\",\n    value: function _createTipElement(content) {\n      var tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6\n\n\n      if (!tip) {\n        return null;\n      }\n\n      tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only\n\n      tip.classList.add(\"bs-\".concat(this.constructor.NAME, \"-auto\"));\n      var tipId = getUID(this.constructor.NAME).toString();\n      tip.setAttribute('id', tipId);\n\n      if (this._isAnimated()) {\n        tip.classList.add(CLASS_NAME_FADE$2);\n      }\n\n      return tip;\n    }\n  }, {\n    key: \"setContent\",\n    value: function setContent(content) {\n      this._newContent = content;\n\n      if (this._isShown()) {\n        this._disposePopper();\n\n        this.show();\n      }\n    }\n  }, {\n    key: \"_getTemplateFactory\",\n    value: function _getTemplateFactory(content) {\n      if (this._templateFactory) {\n        this._templateFactory.changeContent(content);\n      } else {\n        this._templateFactory = new TemplateFactory(_objectSpread(_objectSpread({}, this._config), {}, {\n          // the `content` var has to be after `this._config`\n          // to override config.content in case of popover\n          content: content,\n          extraClass: this._resolvePossibleFunction(this._config.customClass)\n        }));\n      }\n\n      return this._templateFactory;\n    }\n  }, {\n    key: \"_getContentForTemplate\",\n    value: function _getContentForTemplate() {\n      return _defineProperty({}, SELECTOR_TOOLTIP_INNER, this._getTitle());\n    }\n  }, {\n    key: \"_getTitle\",\n    value: function _getTitle() {\n      return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n    } // Private\n\n  }, {\n    key: \"_initializeOnDelegatedTarget\",\n    value: function _initializeOnDelegatedTarget(event) {\n      return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n    }\n  }, {\n    key: \"_isAnimated\",\n    value: function _isAnimated() {\n      return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n    }\n  }, {\n    key: \"_isShown\",\n    value: function _isShown() {\n      return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n    }\n  }, {\n    key: \"_createPopper\",\n    value: function _createPopper(tip) {\n      var placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n      var attachment = AttachmentMap[placement.toUpperCase()];\n      return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n    }\n  }, {\n    key: \"_getOffset\",\n    value: function _getOffset() {\n      var _this42 = this;\n\n      var offset = this._config.offset;\n\n      if (typeof offset === 'string') {\n        return offset.split(',').map(function (value) {\n          return Number.parseInt(value, 10);\n        });\n      }\n\n      if (typeof offset === 'function') {\n        return function (popperData) {\n          return offset(popperData, _this42._element);\n        };\n      }\n\n      return offset;\n    }\n  }, {\n    key: \"_resolvePossibleFunction\",\n    value: function _resolvePossibleFunction(arg) {\n      return typeof arg === 'function' ? arg.call(this._element) : arg;\n    }\n  }, {\n    key: \"_getPopperConfig\",\n    value: function _getPopperConfig(attachment) {\n      var _this43 = this;\n\n      var defaultBsPopperConfig = {\n        placement: attachment,\n        modifiers: [{\n          name: 'flip',\n          options: {\n            fallbackPlacements: this._config.fallbackPlacements\n          }\n        }, {\n          name: 'offset',\n          options: {\n            offset: this._getOffset()\n          }\n        }, {\n          name: 'preventOverflow',\n          options: {\n            boundary: this._config.boundary\n          }\n        }, {\n          name: 'arrow',\n          options: {\n            element: \".\".concat(this.constructor.NAME, \"-arrow\")\n          }\n        }, {\n          name: 'preSetPlacement',\n          enabled: true,\n          phase: 'beforeMain',\n          fn: function fn(data) {\n            // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n            // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n            _this43._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n          }\n        }]\n      };\n      return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n    }\n  }, {\n    key: \"_setListeners\",\n    value: function _setListeners() {\n      var _this44 = this;\n\n      var triggers = this._config.trigger.split(' ');\n\n      var _iterator23 = _createForOfIteratorHelper(triggers),\n          _step23;\n\n      try {\n        for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n          var trigger = _step23.value;\n\n          if (trigger === 'click') {\n            EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, function (event) {\n              var context = _this44._initializeOnDelegatedTarget(event);\n\n              context.toggle();\n            });\n          } else if (trigger !== TRIGGER_MANUAL) {\n            var eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n            var eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n            EventHandler.on(this._element, eventIn, this._config.selector, function (event) {\n              var context = _this44._initializeOnDelegatedTarget(event);\n\n              context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n\n              context._enter();\n            });\n            EventHandler.on(this._element, eventOut, this._config.selector, function (event) {\n              var context = _this44._initializeOnDelegatedTarget(event);\n\n              context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n\n              context._leave();\n            });\n          }\n        }\n      } catch (err) {\n        _iterator23.e(err);\n      } finally {\n        _iterator23.f();\n      }\n\n      this._hideModalHandler = function () {\n        if (_this44._element) {\n          _this44.hide();\n        }\n      };\n\n      EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n    }\n  }, {\n    key: \"_fixTitle\",\n    value: function _fixTitle() {\n      var title = this._element.getAttribute('title');\n\n      if (!title) {\n        return;\n      }\n\n      if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n        this._element.setAttribute('aria-label', title);\n      }\n\n      this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n\n\n      this._element.removeAttribute('title');\n    }\n  }, {\n    key: \"_enter\",\n    value: function _enter() {\n      var _this45 = this;\n\n      if (this._isShown() || this._isHovered) {\n        this._isHovered = true;\n        return;\n      }\n\n      this._isHovered = true;\n\n      this._setTimeout(function () {\n        if (_this45._isHovered) {\n          _this45.show();\n        }\n      }, this._config.delay.show);\n    }\n  }, {\n    key: \"_leave\",\n    value: function _leave() {\n      var _this46 = this;\n\n      if (this._isWithActiveTrigger()) {\n        return;\n      }\n\n      this._isHovered = false;\n\n      this._setTimeout(function () {\n        if (!_this46._isHovered) {\n          _this46.hide();\n        }\n      }, this._config.delay.hide);\n    }\n  }, {\n    key: \"_setTimeout\",\n    value: function _setTimeout(handler, timeout) {\n      clearTimeout(this._timeout);\n      this._timeout = setTimeout(handler, timeout);\n    }\n  }, {\n    key: \"_isWithActiveTrigger\",\n    value: function _isWithActiveTrigger() {\n      return Object.values(this._activeTrigger).includes(true);\n    }\n  }, {\n    key: \"_getConfig\",\n    value: function _getConfig(config) {\n      var dataAttributes = Manipulator.getDataAttributes(this._element);\n\n      for (var _i10 = 0, _Object$keys5 = Object.keys(dataAttributes); _i10 < _Object$keys5.length; _i10++) {\n        var dataAttribute = _Object$keys5[_i10];\n\n        if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n          delete dataAttributes[dataAttribute];\n        }\n      }\n\n      config = _objectSpread(_objectSpread({}, dataAttributes), _typeof(config) === 'object' && config ? config : {});\n      config = this._mergeConfigObj(config);\n      config = this._configAfterMerge(config);\n\n      this._typeCheckConfig(config);\n\n      return config;\n    }\n  }, {\n    key: \"_configAfterMerge\",\n    value: function _configAfterMerge(config) {\n      config.container = config.container === false ? document.body : getElement(config.container);\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      return config;\n    }\n  }, {\n    key: \"_getDelegateConfig\",\n    value: function _getDelegateConfig() {\n      var config = {};\n\n      for (var key in this._config) {\n        if (this.constructor.Default[key] !== this._config[key]) {\n          config[key] = this._config[key];\n        }\n      }\n\n      config.selector = false;\n      config.trigger = 'manual'; // In the future can be replaced with:\n      // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n      // `Object.fromEntries(keysWithDifferentValues)`\n\n      return config;\n    }\n  }, {\n    key: \"_disposePopper\",\n    value: function _disposePopper() {\n      if (this._popper) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n\n      if (this.tip) {\n        this.tip.remove();\n        this.tip = null;\n      }\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$3;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$3;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$4;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Tooltip.getOrCreateInstance(this, config);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (typeof data[config] === 'undefined') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config]();\n      });\n    }\n  }]);\n\n  return Tooltip;\n}(BaseComponent);\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Tooltip);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$3 = 'popover';\nvar SELECTOR_TITLE = '.popover-header';\nvar SELECTOR_CONTENT = '.popover-body';\n\nvar Default$2 = _objectSpread(_objectSpread({}, Tooltip.Default), {}, {\n  content: '',\n  offset: [0, 8],\n  placement: 'right',\n  template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"popover-arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div>' + '</div>',\n  trigger: 'click'\n});\n\nvar DefaultType$2 = _objectSpread(_objectSpread({}, Tooltip.DefaultType), {}, {\n  content: '(null|string|element|function)'\n});\n/**\n * Class definition\n */\n\n\nvar Popover = /*#__PURE__*/function (_Tooltip) {\n  _inherits(Popover, _Tooltip);\n\n  var _super14 = _createSuper(Popover);\n\n  function Popover() {\n    _classCallCheck(this, Popover);\n\n    return _super14.apply(this, arguments);\n  }\n\n  _createClass(Popover, [{\n    key: \"_isWithContent\",\n    value: // Overrides\n    function _isWithContent() {\n      return this._getTitle() || this._getContent();\n    } // Private\n\n  }, {\n    key: \"_getContentForTemplate\",\n    value: function _getContentForTemplate() {\n      var _ref20;\n\n      return _ref20 = {}, _defineProperty(_ref20, SELECTOR_TITLE, this._getTitle()), _defineProperty(_ref20, SELECTOR_CONTENT, this._getContent()), _ref20;\n    }\n  }, {\n    key: \"_getContent\",\n    value: function _getContent() {\n      return this._resolvePossibleFunction(this._config.content);\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: // Getters\n    function get() {\n      return Default$2;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$2;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$3;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Popover.getOrCreateInstance(this, config);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (typeof data[config] === 'undefined') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config]();\n      });\n    }\n  }]);\n\n  return Popover;\n}(Tooltip);\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Popover);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$2 = 'scrollspy';\nvar DATA_KEY$2 = 'bs.scrollspy';\nvar EVENT_KEY$2 = \".\".concat(DATA_KEY$2);\nvar DATA_API_KEY = '.data-api';\nvar EVENT_ACTIVATE = \"activate\".concat(EVENT_KEY$2);\nvar EVENT_CLICK = \"click\".concat(EVENT_KEY$2);\nvar EVENT_LOAD_DATA_API$1 = \"load\".concat(EVENT_KEY$2).concat(DATA_API_KEY);\nvar CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nvar CLASS_NAME_ACTIVE$1 = 'active';\nvar SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nvar SELECTOR_TARGET_LINKS = '[href]';\nvar SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nvar SELECTOR_NAV_LINKS = '.nav-link';\nvar SELECTOR_NAV_ITEMS = '.nav-item';\nvar SELECTOR_LIST_ITEMS = '.list-group-item';\nvar SELECTOR_LINK_ITEMS = \"\".concat(SELECTOR_NAV_LINKS, \", \").concat(SELECTOR_NAV_ITEMS, \" > \").concat(SELECTOR_NAV_LINKS, \", \").concat(SELECTOR_LIST_ITEMS);\nvar SELECTOR_DROPDOWN = '.dropdown';\nvar SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nvar Default$1 = {\n  offset: null,\n  // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n  rootMargin: '0px 0px -25%',\n  smoothScroll: false,\n  target: null,\n  threshold: [0.1, 0.5, 1]\n};\nvar DefaultType$1 = {\n  offset: '(number|null)',\n  // TODO v6 @deprecated, keep it for backwards compatibility reasons\n  rootMargin: 'string',\n  smoothScroll: 'boolean',\n  target: 'element',\n  threshold: 'array'\n};\n/**\n * Class definition\n */\n\nvar ScrollSpy = /*#__PURE__*/function (_BaseComponent9) {\n  _inherits(ScrollSpy, _BaseComponent9);\n\n  var _super15 = _createSuper(ScrollSpy);\n\n  function ScrollSpy(element, config) {\n    var _this47;\n\n    _classCallCheck(this, ScrollSpy);\n\n    _this47 = _super15.call(this, element, config); // this._element is the observablesContainer and config.target the menu links wrapper\n\n    _this47._targetLinks = new Map();\n    _this47._observableSections = new Map();\n    _this47._rootElement = getComputedStyle(_this47._element).overflowY === 'visible' ? null : _this47._element;\n    _this47._activeTarget = null;\n    _this47._observer = null;\n    _this47._previousScrollData = {\n      visibleEntryTop: 0,\n      parentScrollTop: 0\n    };\n\n    _this47.refresh(); // initialize\n\n\n    return _this47;\n  } // Getters\n\n\n  _createClass(ScrollSpy, [{\n    key: \"refresh\",\n    value: // Public\n    function refresh() {\n      this._initializeTargetsAndObservables();\n\n      this._maybeEnableSmoothScroll();\n\n      if (this._observer) {\n        this._observer.disconnect();\n      } else {\n        this._observer = this._getNewObserver();\n      }\n\n      var _iterator24 = _createForOfIteratorHelper(this._observableSections.values()),\n          _step24;\n\n      try {\n        for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n          var section = _step24.value;\n\n          this._observer.observe(section);\n        }\n      } catch (err) {\n        _iterator24.e(err);\n      } finally {\n        _iterator24.f();\n      }\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      this._observer.disconnect();\n\n      _get(_getPrototypeOf(ScrollSpy.prototype), \"dispose\", this).call(this);\n    } // Private\n\n  }, {\n    key: \"_configAfterMerge\",\n    value: function _configAfterMerge(config) {\n      // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n      config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n\n      config.rootMargin = config.offset ? \"\".concat(config.offset, \"px 0px -30%\") : config.rootMargin;\n\n      if (typeof config.threshold === 'string') {\n        config.threshold = config.threshold.split(',').map(function (value) {\n          return Number.parseFloat(value);\n        });\n      }\n\n      return config;\n    }\n  }, {\n    key: \"_maybeEnableSmoothScroll\",\n    value: function _maybeEnableSmoothScroll() {\n      var _this48 = this;\n\n      if (!this._config.smoothScroll) {\n        return;\n      } // unregister any previous listeners\n\n\n      EventHandler.off(this._config.target, EVENT_CLICK);\n      EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, function (event) {\n        var observableSection = _this48._observableSections.get(event.target.hash);\n\n        if (observableSection) {\n          event.preventDefault();\n          var root = _this48._rootElement || window;\n          var height = observableSection.offsetTop - _this48._element.offsetTop;\n\n          if (root.scrollTo) {\n            root.scrollTo({\n              top: height,\n              behavior: 'smooth'\n            });\n            return;\n          } // Chrome 60 doesn't support `scrollTo`\n\n\n          root.scrollTop = height;\n        }\n      });\n    }\n  }, {\n    key: \"_getNewObserver\",\n    value: function _getNewObserver() {\n      var _this49 = this;\n\n      var options = {\n        root: this._rootElement,\n        threshold: this._config.threshold,\n        rootMargin: this._config.rootMargin\n      };\n      return new IntersectionObserver(function (entries) {\n        return _this49._observerCallback(entries);\n      }, options);\n    } // The logic of selection\n\n  }, {\n    key: \"_observerCallback\",\n    value: function _observerCallback(entries) {\n      var _this50 = this;\n\n      var targetElement = function targetElement(entry) {\n        return _this50._targetLinks.get(\"#\".concat(entry.target.id));\n      };\n\n      var activate = function activate(entry) {\n        _this50._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n\n        _this50._process(targetElement(entry));\n      };\n\n      var parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n      var userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n      this._previousScrollData.parentScrollTop = parentScrollTop;\n\n      var _iterator25 = _createForOfIteratorHelper(entries),\n          _step25;\n\n      try {\n        for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n          var entry = _step25.value;\n\n          if (!entry.isIntersecting) {\n            this._activeTarget = null;\n\n            this._clearActiveClass(targetElement(entry));\n\n            continue;\n          }\n\n          var entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop\n\n          if (userScrollsDown && entryIsLowerThanPrevious) {\n            activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n\n            if (!parentScrollTop) {\n              return;\n            }\n\n            continue;\n          } // if we are scrolling up, pick the smallest offsetTop\n\n\n          if (!userScrollsDown && !entryIsLowerThanPrevious) {\n            activate(entry);\n          }\n        }\n      } catch (err) {\n        _iterator25.e(err);\n      } finally {\n        _iterator25.f();\n      }\n    }\n  }, {\n    key: \"_initializeTargetsAndObservables\",\n    value: function _initializeTargetsAndObservables() {\n      this._targetLinks = new Map();\n      this._observableSections = new Map();\n      var targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n\n      var _iterator26 = _createForOfIteratorHelper(targetLinks),\n          _step26;\n\n      try {\n        for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {\n          var anchor = _step26.value;\n\n          // ensure that the anchor has an id and is not disabled\n          if (!anchor.hash || isDisabled(anchor)) {\n            continue;\n          }\n\n          var observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible\n\n          if (isVisible(observableSection)) {\n            this._targetLinks.set(anchor.hash, anchor);\n\n            this._observableSections.set(anchor.hash, observableSection);\n          }\n        }\n      } catch (err) {\n        _iterator26.e(err);\n      } finally {\n        _iterator26.f();\n      }\n    }\n  }, {\n    key: \"_process\",\n    value: function _process(target) {\n      if (this._activeTarget === target) {\n        return;\n      }\n\n      this._clearActiveClass(this._config.target);\n\n      this._activeTarget = target;\n      target.classList.add(CLASS_NAME_ACTIVE$1);\n\n      this._activateParents(target);\n\n      EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n        relatedTarget: target\n      });\n    }\n  }, {\n    key: \"_activateParents\",\n    value: function _activateParents(target) {\n      // Activate dropdown parents\n      if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n        SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n        return;\n      }\n\n      var _iterator27 = _createForOfIteratorHelper(SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)),\n          _step27;\n\n      try {\n        for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {\n          var listGroup = _step27.value;\n\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          var _iterator28 = _createForOfIteratorHelper(SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)),\n              _step28;\n\n          try {\n            for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {\n              var item = _step28.value;\n              item.classList.add(CLASS_NAME_ACTIVE$1);\n            }\n          } catch (err) {\n            _iterator28.e(err);\n          } finally {\n            _iterator28.f();\n          }\n        }\n      } catch (err) {\n        _iterator27.e(err);\n      } finally {\n        _iterator27.f();\n      }\n    }\n  }, {\n    key: \"_clearActiveClass\",\n    value: function _clearActiveClass(parent) {\n      parent.classList.remove(CLASS_NAME_ACTIVE$1);\n      var activeNodes = SelectorEngine.find(\"\".concat(SELECTOR_TARGET_LINKS, \".\").concat(CLASS_NAME_ACTIVE$1), parent);\n\n      var _iterator29 = _createForOfIteratorHelper(activeNodes),\n          _step29;\n\n      try {\n        for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {\n          var node = _step29.value;\n          node.classList.remove(CLASS_NAME_ACTIVE$1);\n        }\n      } catch (err) {\n        _iterator29.e(err);\n      } finally {\n        _iterator29.f();\n      }\n    } // Static\n\n  }], [{\n    key: \"Default\",\n    get: function get() {\n      return Default$1;\n    }\n  }, {\n    key: \"DefaultType\",\n    get: function get() {\n      return DefaultType$1;\n    }\n  }, {\n    key: \"NAME\",\n    get: function get() {\n      return NAME$2;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = ScrollSpy.getOrCreateInstance(this, config);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config]();\n      });\n    }\n  }]);\n\n  return ScrollSpy;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(window, EVENT_LOAD_DATA_API$1, function () {\n  var _iterator30 = _createForOfIteratorHelper(SelectorEngine.find(SELECTOR_DATA_SPY)),\n      _step30;\n\n  try {\n    for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {\n      var spy = _step30.value;\n      ScrollSpy.getOrCreateInstance(spy);\n    }\n  } catch (err) {\n    _iterator30.e(err);\n  } finally {\n    _iterator30.f();\n  }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME$1 = 'tab';\nvar DATA_KEY$1 = 'bs.tab';\nvar EVENT_KEY$1 = \".\".concat(DATA_KEY$1);\nvar EVENT_HIDE$1 = \"hide\".concat(EVENT_KEY$1);\nvar EVENT_HIDDEN$1 = \"hidden\".concat(EVENT_KEY$1);\nvar EVENT_SHOW$1 = \"show\".concat(EVENT_KEY$1);\nvar EVENT_SHOWN$1 = \"shown\".concat(EVENT_KEY$1);\nvar EVENT_CLICK_DATA_API = \"click\".concat(EVENT_KEY$1);\nvar EVENT_KEYDOWN = \"keydown\".concat(EVENT_KEY$1);\nvar EVENT_LOAD_DATA_API = \"load\".concat(EVENT_KEY$1);\nvar ARROW_LEFT_KEY = 'ArrowLeft';\nvar ARROW_RIGHT_KEY = 'ArrowRight';\nvar ARROW_UP_KEY = 'ArrowUp';\nvar ARROW_DOWN_KEY = 'ArrowDown';\nvar CLASS_NAME_ACTIVE = 'active';\nvar CLASS_NAME_FADE$1 = 'fade';\nvar CLASS_NAME_SHOW$1 = 'show';\nvar CLASS_DROPDOWN = 'dropdown';\nvar SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\nvar SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\nvar NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';\nvar SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]';\nvar SELECTOR_OUTER = '.nav-item, .list-group-item';\nvar SELECTOR_INNER = \".nav-link\".concat(NOT_SELECTOR_DROPDOWN_TOGGLE, \", .list-group-item\").concat(NOT_SELECTOR_DROPDOWN_TOGGLE, \", [role=\\\"tab\\\"]\").concat(NOT_SELECTOR_DROPDOWN_TOGGLE);\nvar SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'; // todo:v6: could be only `tab`\n\nvar SELECTOR_INNER_ELEM = \"\".concat(SELECTOR_INNER, \", \").concat(SELECTOR_DATA_TOGGLE);\nvar SELECTOR_DATA_TOGGLE_ACTIVE = \".\".concat(CLASS_NAME_ACTIVE, \"[data-bs-toggle=\\\"tab\\\"], .\").concat(CLASS_NAME_ACTIVE, \"[data-bs-toggle=\\\"pill\\\"], .\").concat(CLASS_NAME_ACTIVE, \"[data-bs-toggle=\\\"list\\\"]\");\n/**\n * Class definition\n */\n\nvar Tab = /*#__PURE__*/function (_BaseComponent10) {\n  _inherits(Tab, _BaseComponent10);\n\n  var _super16 = _createSuper(Tab);\n\n  function Tab(element) {\n    var _this51;\n\n    _classCallCheck(this, Tab);\n\n    _this51 = _super16.call(this, element);\n    _this51._parent = _this51._element.closest(SELECTOR_TAB_PANEL);\n\n    if (!_this51._parent) {\n      return _possibleConstructorReturn(_this51); // todo: should Throw exception on v6\n      // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n    } // Set up initial aria attributes\n\n\n    _this51._setInitialAttributes(_this51._parent, _this51._getChildren());\n\n    EventHandler.on(_this51._element, EVENT_KEYDOWN, function (event) {\n      return _this51._keydown(event);\n    });\n    return _this51;\n  } // Getters\n\n\n  _createClass(Tab, [{\n    key: \"show\",\n    value: // Public\n    function show() {\n      // Shows this elem and deactivate the active sibling if exists\n      var innerElem = this._element;\n\n      if (this._elemIsActive(innerElem)) {\n        return;\n      } // Search for active tab on same parent to deactivate it\n\n\n      var active = this._getActiveElem();\n\n      var hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {\n        relatedTarget: innerElem\n      }) : null;\n      var showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {\n        relatedTarget: active\n      });\n\n      if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {\n        return;\n      }\n\n      this._deactivate(active, innerElem);\n\n      this._activate(innerElem, active);\n    } // Private\n\n  }, {\n    key: \"_activate\",\n    value: function _activate(element, relatedElem) {\n      var _this52 = this;\n\n      if (!element) {\n        return;\n      }\n\n      element.classList.add(CLASS_NAME_ACTIVE);\n\n      this._activate(getElementFromSelector(element)); // Search and activate/show the proper section\n\n\n      var complete = function complete() {\n        if (element.getAttribute('role') !== 'tab') {\n          element.classList.add(CLASS_NAME_SHOW$1);\n          return;\n        }\n\n        element.removeAttribute('tabindex');\n        element.setAttribute('aria-selected', true);\n\n        _this52._toggleDropDown(element, true);\n\n        EventHandler.trigger(element, EVENT_SHOWN$1, {\n          relatedTarget: relatedElem\n        });\n      };\n\n      this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));\n    }\n  }, {\n    key: \"_deactivate\",\n    value: function _deactivate(element, relatedElem) {\n      var _this53 = this;\n\n      if (!element) {\n        return;\n      }\n\n      element.classList.remove(CLASS_NAME_ACTIVE);\n      element.blur();\n\n      this._deactivate(getElementFromSelector(element)); // Search and deactivate the shown section too\n\n\n      var complete = function complete() {\n        if (element.getAttribute('role') !== 'tab') {\n          element.classList.remove(CLASS_NAME_SHOW$1);\n          return;\n        }\n\n        element.setAttribute('aria-selected', false);\n        element.setAttribute('tabindex', '-1');\n\n        _this53._toggleDropDown(element, false);\n\n        EventHandler.trigger(element, EVENT_HIDDEN$1, {\n          relatedTarget: relatedElem\n        });\n      };\n\n      this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));\n    }\n  }, {\n    key: \"_keydown\",\n    value: function _keydown(event) {\n      if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {\n        return;\n      }\n\n      event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n\n      event.preventDefault();\n      var isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);\n      var nextActiveElement = getNextActiveElement(this._getChildren().filter(function (element) {\n        return !isDisabled(element);\n      }), event.target, isNext, true);\n\n      if (nextActiveElement) {\n        nextActiveElement.focus({\n          preventScroll: true\n        });\n        Tab.getOrCreateInstance(nextActiveElement).show();\n      }\n    }\n  }, {\n    key: \"_getChildren\",\n    value: function _getChildren() {\n      // collection of inner elements\n      return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);\n    }\n  }, {\n    key: \"_getActiveElem\",\n    value: function _getActiveElem() {\n      var _this54 = this;\n\n      return this._getChildren().find(function (child) {\n        return _this54._elemIsActive(child);\n      }) || null;\n    }\n  }, {\n    key: \"_setInitialAttributes\",\n    value: function _setInitialAttributes(parent, children) {\n      this._setAttributeIfNotExists(parent, 'role', 'tablist');\n\n      var _iterator31 = _createForOfIteratorHelper(children),\n          _step31;\n\n      try {\n        for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {\n          var child = _step31.value;\n\n          this._setInitialAttributesOnChild(child);\n        }\n      } catch (err) {\n        _iterator31.e(err);\n      } finally {\n        _iterator31.f();\n      }\n    }\n  }, {\n    key: \"_setInitialAttributesOnChild\",\n    value: function _setInitialAttributesOnChild(child) {\n      child = this._getInnerElement(child);\n\n      var isActive = this._elemIsActive(child);\n\n      var outerElem = this._getOuterElement(child);\n\n      child.setAttribute('aria-selected', isActive);\n\n      if (outerElem !== child) {\n        this._setAttributeIfNotExists(outerElem, 'role', 'presentation');\n      }\n\n      if (!isActive) {\n        child.setAttribute('tabindex', '-1');\n      }\n\n      this._setAttributeIfNotExists(child, 'role', 'tab'); // set attributes to the related panel too\n\n\n      this._setInitialAttributesOnTargetPanel(child);\n    }\n  }, {\n    key: \"_setInitialAttributesOnTargetPanel\",\n    value: function _setInitialAttributesOnTargetPanel(child) {\n      var target = getElementFromSelector(child);\n\n      if (!target) {\n        return;\n      }\n\n      this._setAttributeIfNotExists(target, 'role', 'tabpanel');\n\n      if (child.id) {\n        this._setAttributeIfNotExists(target, 'aria-labelledby', \"#\".concat(child.id));\n      }\n    }\n  }, {\n    key: \"_toggleDropDown\",\n    value: function _toggleDropDown(element, open) {\n      var outerElem = this._getOuterElement(element);\n\n      if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n        return;\n      }\n\n      var toggle = function toggle(selector, className) {\n        var element = SelectorEngine.findOne(selector, outerElem);\n\n        if (element) {\n          element.classList.toggle(className, open);\n        }\n      };\n\n      toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);\n      toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);\n      outerElem.setAttribute('aria-expanded', open);\n    }\n  }, {\n    key: \"_setAttributeIfNotExists\",\n    value: function _setAttributeIfNotExists(element, attribute, value) {\n      if (!element.hasAttribute(attribute)) {\n        element.setAttribute(attribute, value);\n      }\n    }\n  }, {\n    key: \"_elemIsActive\",\n    value: function _elemIsActive(elem) {\n      return elem.classList.contains(CLASS_NAME_ACTIVE);\n    } // Try to get the inner element (usually the .nav-link)\n\n  }, {\n    key: \"_getInnerElement\",\n    value: function _getInnerElement(elem) {\n      return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);\n    } // Try to get the outer element (usually the .nav-item)\n\n  }, {\n    key: \"_getOuterElement\",\n    value: function _getOuterElement(elem) {\n      return elem.closest(SELECTOR_OUTER) || elem;\n    } // Static\n\n  }], [{\n    key: \"NAME\",\n    get: function get() {\n      return NAME$1;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Tab.getOrCreateInstance(this);\n\n        if (typeof config !== 'string') {\n          return;\n        }\n\n        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n          throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n        }\n\n        data[config]();\n      });\n    }\n  }]);\n\n  return Tab;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  if (['A', 'AREA'].includes(this.tagName)) {\n    event.preventDefault();\n  }\n\n  if (isDisabled(this)) {\n    return;\n  }\n\n  Tab.getOrCreateInstance(this).show();\n});\n/**\n * Initialize on focus\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, function () {\n  var _iterator32 = _createForOfIteratorHelper(SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)),\n      _step32;\n\n  try {\n    for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {\n      var element = _step32.value;\n      Tab.getOrCreateInstance(element);\n    }\n  } catch (err) {\n    _iterator32.e(err);\n  } finally {\n    _iterator32.f();\n  }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nvar NAME = 'toast';\nvar DATA_KEY = 'bs.toast';\nvar EVENT_KEY = \".\".concat(DATA_KEY);\nvar EVENT_MOUSEOVER = \"mouseover\".concat(EVENT_KEY);\nvar EVENT_MOUSEOUT = \"mouseout\".concat(EVENT_KEY);\nvar EVENT_FOCUSIN = \"focusin\".concat(EVENT_KEY);\nvar EVENT_FOCUSOUT = \"focusout\".concat(EVENT_KEY);\nvar EVENT_HIDE = \"hide\".concat(EVENT_KEY);\nvar EVENT_HIDDEN = \"hidden\".concat(EVENT_KEY);\nvar EVENT_SHOW = \"show\".concat(EVENT_KEY);\nvar EVENT_SHOWN = \"shown\".concat(EVENT_KEY);\nvar CLASS_NAME_FADE = 'fade';\nvar CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility\n\nvar CLASS_NAME_SHOW = 'show';\nvar CLASS_NAME_SHOWING = 'showing';\nvar DefaultType = {\n  animation: 'boolean',\n  autohide: 'boolean',\n  delay: 'number'\n};\nvar Default = {\n  animation: true,\n  autohide: true,\n  delay: 5000\n};\n/**\n * Class definition\n */\n\nvar Toast = /*#__PURE__*/function (_BaseComponent11) {\n  _inherits(Toast, _BaseComponent11);\n\n  var _super17 = _createSuper(Toast);\n\n  function Toast(element, config) {\n    var _this55;\n\n    _classCallCheck(this, Toast);\n\n    _this55 = _super17.call(this, element, config);\n    _this55._timeout = null;\n    _this55._hasMouseInteraction = false;\n    _this55._hasKeyboardInteraction = false;\n\n    _this55._setListeners();\n\n    return _this55;\n  } // Getters\n\n\n  _createClass(Toast, [{\n    key: \"show\",\n    value: // Public\n    function show() {\n      var _this56 = this;\n\n      var showEvent = EventHandler.trigger(this._element, EVENT_SHOW);\n\n      if (showEvent.defaultPrevented) {\n        return;\n      }\n\n      this._clearTimeout();\n\n      if (this._config.animation) {\n        this._element.classList.add(CLASS_NAME_FADE);\n      }\n\n      var complete = function complete() {\n        _this56._element.classList.remove(CLASS_NAME_SHOWING);\n\n        EventHandler.trigger(_this56._element, EVENT_SHOWN);\n\n        _this56._maybeScheduleHide();\n      };\n\n      this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated\n\n\n      reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);\n\n      this._queueCallback(complete, this._element, this._config.animation);\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var _this57 = this;\n\n      if (!this.isShown()) {\n        return;\n      }\n\n      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n\n      if (hideEvent.defaultPrevented) {\n        return;\n      }\n\n      var complete = function complete() {\n        _this57._element.classList.add(CLASS_NAME_HIDE); // @deprecated\n\n\n        _this57._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);\n\n        EventHandler.trigger(_this57._element, EVENT_HIDDEN);\n      };\n\n      this._element.classList.add(CLASS_NAME_SHOWING);\n\n      this._queueCallback(complete, this._element, this._config.animation);\n    }\n  }, {\n    key: \"dispose\",\n    value: function dispose() {\n      this._clearTimeout();\n\n      if (this.isShown()) {\n        this._element.classList.remove(CLASS_NAME_SHOW);\n      }\n\n      _get(_getPrototypeOf(Toast.prototype), \"dispose\", this).call(this);\n    }\n  }, {\n    key: \"isShown\",\n    value: function isShown() {\n      return this._element.classList.contains(CLASS_NAME_SHOW);\n    } // Private\n\n  }, {\n    key: \"_maybeScheduleHide\",\n    value: function _maybeScheduleHide() {\n      var _this58 = this;\n\n      if (!this._config.autohide) {\n        return;\n      }\n\n      if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n        return;\n      }\n\n      this._timeout = setTimeout(function () {\n        _this58.hide();\n      }, this._config.delay);\n    }\n  }, {\n    key: \"_onInteraction\",\n    value: function _onInteraction(event, isInteracting) {\n      switch (event.type) {\n        case 'mouseover':\n        case 'mouseout':\n          {\n            this._hasMouseInteraction = isInteracting;\n            break;\n          }\n\n        case 'focusin':\n        case 'focusout':\n          {\n            this._hasKeyboardInteraction = isInteracting;\n            break;\n          }\n      }\n\n      if (isInteracting) {\n        this._clearTimeout();\n\n        return;\n      }\n\n      var nextElement = event.relatedTarget;\n\n      if (this._element === nextElement || this._element.contains(nextElement)) {\n        return;\n      }\n\n      this._maybeScheduleHide();\n    }\n  }, {\n    key: \"_setListeners\",\n    value: function _setListeners() {\n      var _this59 = this;\n\n      EventHandler.on(this._element, EVENT_MOUSEOVER, function (event) {\n        return _this59._onInteraction(event, true);\n      });\n      EventHandler.on(this._element, EVENT_MOUSEOUT, function (event) {\n        return _this59._onInteraction(event, false);\n      });\n      EventHandler.on(this._element, EVENT_FOCUSIN, function (event) {\n        return _this59._onInteraction(event, true);\n      });\n      EventHandler.on(this._element, EVENT_FOCUSOUT, function (event) {\n        return _this59._onInteraction(event, false);\n      });\n    }\n  }, {\n    key: \"_clearTimeout\",\n    value: function _clearTimeout() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n    } // Static\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    key: \"NAME\",\n    get: function get() {\n      return NAME;\n    }\n  }, {\n    key: \"jQueryInterface\",\n    value: function jQueryInterface(config) {\n      return this.each(function () {\n        var data = Toast.getOrCreateInstance(this, config);\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n          }\n\n          data[config](this);\n        }\n      });\n    }\n  }]);\n\n  return Toast;\n}(BaseComponent);\n/**\n * Data API implementation\n */\n\n\nenableDismissTrigger(Toast);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Toast);\nexport { Alert, Button, Carousel, Collapse, Dropdown, Modal, Offcanvas, Popover, ScrollSpy, Tab, Toast, Tooltip };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n  defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n  defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","module.exports = function (module) {\n  if (!module.webpackPolyfill) {\n    module.deprecate = function () {};\n\n    module.paths = []; // module.parent = undefined by default\n\n    if (!module.children) module.children = [];\n    Object.defineProperty(module, \"loaded\", {\n      enumerable: true,\n      get: function get() {\n        return module.l;\n      }\n    });\n    Object.defineProperty(module, \"id\", {\n      enumerable: true,\n      get: function get() {\n        return module.i;\n      }\n    });\n    module.webpackPolyfill = 1;\n  }\n\n  return module;\n};","// チェックボックスとセレクトボックスの複合。'jquery-3.4.1.min.js'が必要。\n$(function() {\n\n  const checkPrefClassName = \".chex-pref\"\n  const mainGroupedInputClassName =\".mcheck-all-99\"\n  const mainPrefInputCalssName = \".mchex-99\"\n  const groupedInputClassName = \".check-all-99\";\n  const prefInputCalssName = \".chex-99\";\n  const cityInputCalssName = \".cchex-99\";\n  const industoryInputClassName = \".chex-ind\"\n  const usageInputClassName = \".chex-use\";\n  const prefApiUrl = \"/api/v1/cities/\";\n\n  //* DOMツリー構成後にチェック済みの市区町村を取得し、チェックをつける ---------------------- *\n  $(document).ready(function() {\n    if (typeof checkedPrefs !== 'undefined' && checkedPrefs.length) {\n      // 初期チェック済み都道府県のチェック\n      checkPrefs(checkedPrefs);\n    }\n  });\n\n  //* DOMツリー構成後に業種、課題・資金使途の初期値をセットする\n  $(document).ready(function() {\n    // 業種のセット\n    var checkboxExIndustory = $(industoryInputClassName).first().closest(\".checkbox-ex\");\n    setIndustory(checkboxExIndustory);\n\n    // 課題資金使途のセット\n    var checkboxExUsage = $(usageInputClassName).first().closest(\".checkbox-ex--tags\");\n    setUsage(checkboxExUsage);\n  });\n\n  //* 【Main 都道府県】クリックイベント ---------------------- *\n  $(\"body\").on('change', mainGroupedInputClassName, function() {\n    checkPrefGroupElement($(this), \"main\")\n    addPrefsToArray($(this), \"main\");\n    checkPrefs(checkedPrefs);\n  });\n\n  $(\"body\").on('change', mainPrefInputCalssName, function() {\n    checkPrefElement($(this), \"main\")\n    addPrefsToArray($(this), \"main\");\n    checkPrefs(checkedPrefs);\n  });\n\n  //* 【詳細 都道府県】クリックイベント ---------------------- *\n  $(\"body\").on('change', groupedInputClassName, function() {\n    checkPrefGroupElement($(this), \"detail\")\n    addPrefsToArray($(this), \"detail\");\n    checkPrefs(checkedPrefs);\n  });\n\n  $(\"body\").on('change', prefInputCalssName, function() {\n    checkPrefElement($(this), \"detail\");\n    addPrefsToArray($(this), \"detail\");\n    checkPrefs(checkedPrefs);\n  });\n\n  //* 【詳細 市区町村】クリックイベント ---------------------- *\n\n  $(\"body\").on('change', cityInputCalssName, function() {\n    checkCityElement($(this))\n    addCitiesToArray()\n  });\n\n  //* 検索条件クリア後、または、検索条件に登録情報を反映後に実行する処理\n  $('#after_reset_search_condition').on('click', function() {\n    //* チェック済みの市区町村を取得し、チェックをつける\n    if (typeof checkedPrefs !== 'undefined') {\n      checkPrefs(checkedPrefs);\n      addPrefsToArray($(prefInputCalssName), \"detail\");\n    }\n\n    //* 業種、課題・資金使途の初期値をセットする\n    // 業種のセット\n    var checkboxExIndustory = $(industoryInputClassName).first().closest(\".checkbox-ex\");\n    setIndustory(checkboxExIndustory);\n\n    // 課題資金使途のセット\n    var checkboxExUsage = $(usageInputClassName).first().closest(\".checkbox-ex--tags\");\n    setUsage(checkboxExUsage);\n  });\n\n  function checkPrefs(checkedPrefsArray) {\n    //checkされているものを一度リセット\n    $('input' + mainPrefInputCalssName + ':checked').each(function(idx, elm) {\n      $(elm).prop('checked', false);\n      checkPrefElement($(elm), \"main\")\n    });\n    $('input' + prefInputCalssName + ':checked').each(function(idx, elm) {\n      $(elm).prop('checked', false);\n      checkPrefElement($(elm), \"detail\")\n    });\n    //checkedPrefsArrayに基づいてcheck\n    checkedPrefsArray.forEach(function(prefCode) {\n      $('input[value=\"' + prefCode + '\"]' + mainPrefInputCalssName).each(function(idx, elm) {\n        $(elm).prop('checked', true);\n        checkPrefElement($(elm), \"main\")\n      });\n      $('input[value=\"' + prefCode + '\"]' + prefInputCalssName).each(function(idx, elm) {\n        $(elm).prop('checked', true);\n        checkPrefElement($(elm), \"detail\")\n      });\n    });\n    createCities($(\".checkbox-ex__select-group\"), \"detail\");\n  }\n\n  function checkCities(checkedCitiesArray) {\n    checkedCitiesArray.forEach(function(prefCode) {\n      $('input[value=\"' + prefCode + '\"]' + cityInputCalssName).each(function(idx, elm) {\n        $(elm).prop('checked', true);\n        checkCityElement($(elm));\n      });\n    });\n  }\n\n  //* 【選択済み都道府県一覧取得】 ---------------------- *\n  function collectPrefArray(parentElement) {\n    return parentElement.find('input' + checkPrefClassName + ':checked')\n  }\n\n  function collectCityArray() {\n    return $(\"#select-city\").find('input' + cityInputCalssName + ':checked')\n  }\n\n  function addPrefsToArray(thisElement, location) {\n    var targetCheckBoxEx = location === \"main\" ? \".m-checkbox-ex\" : \".checkbox-ex\";\n    var targetInputClassName = location === \"main\" ? mainPrefInputCalssName : prefInputCalssName\n    const checkboxEx = $(thisElement.closest(targetCheckBoxEx))\n    checkedPrefs = collectPrefArray(checkboxEx).map(function() {\n      return $(this).val();\n    }).get();\n    // hiddenフィールドへの格納\n    if ($(\"#search_anken_business_area_cds_str_hidden_value\").length){\n      $(\"#search_anken_business_area_cds_str_hidden_value\").val(checkedPrefs.join(','));\n    }\n    if ($(\"#detail_search_anken_business_area_cds_str_hidden_value\").length) {\n      $(\"#detail_search_anken_business_area_cds_str_hidden_value\").val(checkedPrefs.concat(checkedCities).join(','));\n    }\n    if ($(\"#search_anken_business_area_cds_str_hidden_value_lp_1\").length){\n      $(\"#search_anken_business_area_cds_str_hidden_value_lp_1\").val(checkedPrefs.join(','));\n    }\n    if ($(\"#search_anken_business_area_cds_str_hidden_value_lp_2\").length){\n      $(\"#search_anken_business_area_cds_str_hidden_value_lp_2\").val(checkedPrefs.join(','));\n    }\n  }\n\n  function addCitiesToArray() {\n    checkedCities = collectCityArray().map(function() {\n      return $(this).val();\n    }).get();\n    // hiddenフィールドへの格納\n    if ($(\"#detail_search_anken_business_area_cds_str_hidden_value\").length) {\n      $(\"#detail_search_anken_business_area_cds_str_hidden_value\").val(checkedPrefs.concat(checkedCities).join(','));\n    }\n  }\n\n  function createCities(thisElement, location) {\n    var targetCheckBoxEx = location === \"main\" ? \".m-checkbox-ex\" : \".checkbox-ex\";\n    const checkboxEx = $(thisElement.closest(targetCheckBoxEx))\n    const prefArray = collectPrefArray(checkboxEx)\n    getPrefJson(prefArray)\n  }\n\n  function checkPrefGroupElement(thisElement, location) {\n    var targetCheckboxExSelected = location === \"main\" ? \".m-checkbox-ex__select-group\" : \".checkbox-ex__select-group\"\n    var targetCheckBoxEx = location === \"main\" ? \".m-checkbox-ex\" : \".checkbox-ex\";\n    const selectGroup = thisElement.parent().next(targetCheckboxExSelected);\n    selectGroup.find(\"input\").prop('checked', thisElement.is(':checked'));\n    const checkboxEx = $(thisElement.closest(targetCheckBoxEx))\n    syncTextField(checkboxEx, location);\n  }\n\n  function checkPrefElement(thisElement, location) {\n    var targetHeadingClass = location === \"main\" ? \".m-checkbox-ex__heading\" : \".checkbox-ex__heading\";\n    var targetCheckBoxEx = location === \"main\" ? \".m-checkbox-ex\" : \".checkbox-ex\";\n    var targetInputClassName = location === \"main\" ? mainGroupedInputClassName : groupedInputClassName\n    const selectGroup = thisElement.parent().parent();\n    const selectHeaderInput = selectGroup.prev(targetHeadingClass).find(targetInputClassName)\n    if (selectGroup.find(\"input\").filter(\":checked\").length == selectGroup.find(\"input\").length){\n      selectHeaderInput.prop('checked', true);\n    }else{\n      selectHeaderInput.prop('checked', false);\n    }\n    const checkboxEx = $(thisElement.closest(targetCheckBoxEx))\n    syncTextField(checkboxEx, location);\n  }\n\n  function syncTextField(checkboxEx, location) {\n    var targetDataObjectClassName = location === \"main\" ? \".m-checkbox-ex__data-object\" : \".checkbox-ex__data-object\"\n    var targetCheckboxExSelected = location === \"main\" ? \".m-checkbox-ex__selected\" : \".checkbox-ex__selected\"\n    const defaultHtml = location === \"main\" ? '地域を選択(必須)' : '地域(都道府県)を選択';\n    const prefs = collectPrefArray(checkboxEx);\n    const valsPref = prefs.map(function() {\n      return $(this).next().find(targetDataObjectClassName).text();\n    }).get();\n    checkboxEx.find(targetCheckboxExSelected).removeClass('null-alert');\n    if (valsPref.length >= 4) {\n      const value = '選択中(' + valsPref.length + ')'\n      checkboxEx.find(targetCheckboxExSelected).removeClass('default').text(value);\n    }else if(valsPref.length >= 1) {\n      checkboxEx.find(targetCheckboxExSelected).removeClass('default').text(valsPref.join(\", \"));\n    }else{\n      checkboxEx.find(targetCheckboxExSelected).addClass('default').html(defaultHtml);\n    }\n\n    // 都道府県選択モーダル表示ボタンとモーダル表示ボタンを変更する\n    const $mainSearchConditionPrefButton = $('#mainSearchConditionPrefButton');\n    const $mainSearchConditionCityButton = $('#mainSearchConditionCityButton');\n    if (valsPref.length >= 1) {\n      $mainSearchConditionPrefButton.text(`都道府県(${valsPref.length})`).removeClass('not-selected').removeClass('required-notice');\n      $mainSearchConditionCityButton.prop('disabled', false);\n    } else {\n      $mainSearchConditionPrefButton.text('都道府県※').addClass('not-selected');\n      $mainSearchConditionCityButton.prop('disabled', true);\n    }\n    $mainSearchConditionPrefButton.trigger('change');\n  }\n\n  function citySyncTextField(checkboxEx) {\n    const defaultHtml = '<span class=\"default\">地域(市区町村)を選択</span>'\n    const valsPref = $(checkboxEx).find('input' + cityInputCalssName + ':checked').map(function() {\n      return $(this).next().find(\".checkbox-ex__data-object\").text();\n    }).get();\n    if (valsPref.length >= 4) {\n      const value = '選択中(' + valsPref.length + ')'\n      checkboxEx.find(\".checkbox-ex__selected\").html('<span>' + value + '</span>');\n    }else if(valsPref.length >= 1) {\n      checkboxEx.find(\".checkbox-ex__selected\").html('<span>' + valsPref.join(\", \") + '</span>');\n    }else{\n      checkboxEx.find(\".checkbox-ex__selected\").html(defaultHtml);\n    }\n\n    // 市区町村選択モーダル表示ボタンを変更する\n    const $mainSearchConditionCityButton = $('#mainSearchConditionCityButton');\n    if (valsPref.length >= 1) {\n      $mainSearchConditionCityButton.text(`市区町村(${valsPref.length})`);\n      $mainSearchConditionCityButton.removeClass('not-required-not-selected');\n    } else {\n      $mainSearchConditionCityButton.text('市区町村');\n      $mainSearchConditionCityButton.addClass('not-required-not-selected');\n    }\n  }\n\n  function checkCityElement(thisElement) {\n    citySyncTextField($(thisElement.closest(\".checkbox-ex\")));\n  }\n\n  //* 【市区町村のAPIを実行】 ---------------------- *\n  function getPrefJson(prefArray) {\n    var values = prefArray.map(function() {\n      return $(this).val()\n    }).get();\n    if (prefArray.length) {\n      var query = prefApiUrl + \"?\"\n      $.each(values, function(index, element) {\n        if ((values.length -1) === index) {\n          query += \"values%5B%5D=\" + element\n        } else {\n          query += \"values%5B%5D=\" + element + \"&\"\n        }\n      })\n      $.getJSON(query)\n      .done(function(data) {\n        if (data) {\n          assembleCities(data);\n          checkCities(checkedCities);\n          addCitiesToArray();\n          citySyncTextField($(\"#select-city\"));\n          // 市区町村選択モーダルの内容を再作成するためのトリガー\n          $('#reGenerateScCityModalContent').trigger('click');\n        }\n      });\n    } else {\n      //初期リセット\n      checkedCities = [];\n      $(\"#cities\").empty();\n      checkCities(checkedCities);\n      addCitiesToArray();\n      citySyncTextField($(\"#select-city\"));\n      // 市区町村選択モーダルの内容を再作成するためのトリガー\n      $('#reGenerateScCityModalContent').trigger('click');\n    }\n  }\n\n  function assembleCities(data) {\n    const targetSelector = \"#cities\"\n\n    var target = $(targetSelector)\n\n    // API呼び出し都度クリア\n    target.empty()\n\n    // テンプレートの読み込み\n    var tempRow = $($('#template-row').html());\n    var tempHead = $($('#template-head').html());\n    var tempSelect = $($('#template-select').html());\n\n    $.each(data.prefs, function(idx, val) {\n      var tempRowClone = tempRow.clone(true);\n      var tempHeadClone = tempHead.clone(true);\n\n      //Head要素の追加\n      tempHeadClone.find(\".checkbox-ex__data-object\").text(val.pref);\n      tempRowClone.prepend(tempHeadClone);\n\n      //Select要素の追加\n      $.each(val.cities, function(idxSelect, val){\n        var tempSelectClone = tempSelect.clone(true);\n        tempSelectClone.find(\".form-check-input\").attr('id', 'chx-city-' + idx + idxSelect);\n        tempSelectClone.find(\".form-check-input\").val(val.city_cd)\n        tempSelectClone.find(\".form-check-label\").attr('for', 'chx-city-' + idx + idxSelect)\n        tempSelectClone.find(\".checkbox-ex__data-object\").text(val.city)\n        tempRowClone.find(\".checkbox-ex__select-group\").append(tempSelectClone)\n      });\n      target.append(tempRowClone)\n    });\n  }\n\n  //* 【業種分類】 ---------------------- *\n  // チェック状態の時に、セレクトボックスの中身を同期させる\n  $(\"body\").on('change', industoryInputClassName, function() {\n    const checkboxEx = $(this.closest(\".checkbox-ex\"))\n    setIndustory(checkboxEx);\n  });\n\n  function setIndustory(checkboxEx) {\n    const defaultHtml = '<span class=\"default\">業種分類を選択</span>';\n    const valsPref = $(checkboxEx).find('input' + industoryInputClassName + ':checked').map(function() {\n      return $(this).next().find(\".checkbox-ex__data-object\").text();\n    }).get();\n    if (valsPref.length >= 4) {\n      const value = '選択中(' + valsPref.length + ')'\n      checkboxEx.find(\".checkbox-ex__selected\").text(value);\n    }else if(valsPref.length >= 1) {\n      checkboxEx.find(\".checkbox-ex__selected\").text(valsPref.join(\", \"));\n    }else{\n      checkboxEx.find(\".checkbox-ex__selected\").html(defaultHtml);\n    }\n    // hiddenフィールドへのセット\n    if ($(\"#detail_search_anken_industry_cds_str_hidden_value\").length) {\n      const vals = $(checkboxEx).find('input' + industoryInputClassName + ':checked').map(function() {\n        return $(this).val();\n      }).get();\n      $(\"#detail_search_anken_industry_cds_str_hidden_value\").val(vals.join(\",\"));\n    }\n  }\n\n  //* 【課題・資金使途】 ---------------------- *\n  $(\"body\").on('change', usageInputClassName, function() {\n    const checkboxEx = $(this.closest(\".checkbox-ex--tags\"))\n    setUsage(checkboxEx);\n  });\n\n  function setUsage(checkboxEx) {\n    const defaultHtml = '<span class=\"default\">課題・資金使途を選択</span>';\n    const valsUsage = $(checkboxEx).find('input' + usageInputClassName + ':checked').map(function() {\n      return $(this).next().find(\".checkbox-ex__tag-data-object\").text();\n    }).get();\n    if (valsUsage.length >= 3) {\n      const value = '選択中(' + valsUsage.length + ')'\n      checkboxEx.find(\".checkbox-ex__selected\").text(value);\n    }else if(valsUsage.length >= 1) {\n      let html = \"\";\n      $.each(valsUsage, function (index, val) {\n        html += '<span class=\"tag-data-object--active\">' + val + '</span>';\n      });\n      checkboxEx.find(\".checkbox-ex__selected\").html(html);\n    }else{\n      checkboxEx.find(\".checkbox-ex__selected\").html(defaultHtml);\n    }\n    // hiddenフィールドへのセット\n    if ($(\"#detail_search_anken_usage_cds_str_hidden_value\").length) {\n      const vals = $(checkboxEx).find('input' + usageInputClassName + ':checked').map(function() {\n        return $(this).val();\n      }).get();\n      $(\"#detail_search_anken_usage_cds_str_hidden_value\").val(vals.join(\",\"));\n    }\n  }\n\n  //* 【事業形態の連動処理 & 赤文字除去】 ---------------------- *\n  $(\".business-type\").on(\"change\", function(){\n    $(\".main-firstview__selected\").removeClass('null-alert');\n    $(\".business-type\").removeClass('null-alert');\n    var selectedValue = $(this).val();\n    $(\".business-type\").each(function(index, element) {\n      $(element).val(selectedValue);\n    });\n    if(selectedValue === \"\") {\n      $(\".main-firstview__selected\").addClass('default');\n      $(\".checkbox-ex--flat__select.business-type\").addClass('default');\n    } else {\n      $(\".main-firstview__selected\").removeClass('default');\n      $(\".checkbox-ex--flat__select.business-type\").removeClass('default');\n    }\n  });\n\n  // 検索フリーワードのプレースホルダーを元に戻す\n  $(document).on(\"focus\", \".input-freeword.freeword-alert.search-freeword\", function(){\n    $(this).attr('placeholder', 'フリーワードで検索(補助金の名称、○○銀行など)');\n    $(this).removeClass('freeword-alert');\n  });\n\n  // 会員情報フリーワードのプレースホルダーを元に戻す\n  $(document).on(\"focus\", \".input-freeword.freeword-alert.user-freeword\", function(){\n    $(this).attr('placeholder', 'フリーワード(補助金の名称、〇〇銀行など)');\n    $(this).removeClass('freeword-alert');\n  });\n\n});\n\nexport function checkMandatoryFields(submitButtonEl) {\n  var targetMainBusinessAreaSelected = \".m-checkbox-ex__selected\";\n  var targetBusinessAreaSelected = \"#pref-selected-count\";\n  var targetMainBusinessTypeSelected = \".main-firstview__selected\";\n  var targetBusinessTypeSelected = \"#detail_search_q_anken_business_type_cd\";\n  var errorStatus = false;\n\n  // 簡易検索\n  if (submitButtonEl === \".js-search_submit_button\"){\n    // 地域(都道府県)のnullチェック\n    if($('#m-pref-checkbox-ex').find('input.chex-pref:checked').length === 0){\n      $(targetMainBusinessAreaSelected).removeClass('default').addClass('null-alert');\n      errorStatus = true;\n    }\n    // 事業形態のnullチェック\n    if($('#q_anken_business_type_cd').val() === \"\"){\n      $(targetMainBusinessTypeSelected).removeClass('default').addClass('null-alert');\n      errorStatus = true;\n    }\n  }\n  // 詳細検索\n  if (submitButtonEl === \".js-detail_search_submit_button\"){\n    // 地域(都道府県)のnullチェック\n    if($('#pref-checkbox-ex').find('input.chex-pref:checked').length === 0 ){\n      $(targetBusinessAreaSelected).removeClass('default').addClass('null-alert');\n      errorStatus = true;\n    }\n    // 事業形態のnullチェック\n    if($('#detail_search_q_anken_business_type_cd').val() === \"\"){\n      $(targetBusinessTypeSelected).removeClass('default').addClass('null-alert');\n      errorStatus = true;\n    }\n  }\n  return errorStatus\n}\n\nexport function checkedCitiesOver() {\n  const cityInputCalssName = \".cchex-99\";\n  const limitChecks = 50;\n  const checkboxEx = $('#select-city');\n  const errorHTML = '<span class=\"null-alert\">' + limitChecks + '件以内で選択してください</span>'\n  var errorStatus = false;\n\n  const valsCities = checkboxEx.find('input' + cityInputCalssName + ':checked');\n  if (valsCities.length > limitChecks) {\n    errorStatus = true;\n    var currentHTML = checkboxEx.find(\".checkbox-ex__selected\").html();\n    if (!currentHTML.match(/null-alert/)){\n      checkboxEx.find(\".checkbox-ex__selected\").html(currentHTML + errorHTML);\n    }\n  }\n  return errorStatus;\n}\n\n//* 【キーワード入力フィールド】検索ボタンクリック時に文字数制限にかかればエラーを表示 ---------------------- *\nexport function checkFreewordLengthOver() {\n  const freewordFieldClassName = \".input-freeword\";\n  const maxLength = 30;\n  let errorStatus = false;\n\n  if ($(freewordFieldClassName).length && $(freewordFieldClassName).val().length > maxLength) {\n    errorStatus = true;\n    $(freewordFieldClassName).addClass('freeword-alert');\n    $(freewordFieldClassName).attr('placeholder', maxLength + '文字以内で入力してください');\n    $(freewordFieldClassName).val('');\n  }\n  return errorStatus;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; 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 g; // This works in non-strict mode\n\ng = function () {\n  return this;\n}();\n\ntry {\n  // This works if eval is allowed (see CSP)\n  g = g || new Function(\"return this\")();\n} catch (e) {\n  // This works if the window reference is available\n  if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\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\n\nmodule.exports = g;","export function deleteParameterFromUrl(location, deleteName) {\n  const url = new URL(location);\n  url.searchParams.delete(deleteName)\n  history.replaceState(null, null, url)\n}\n","import { setWithCountAnimation, sanitizeMoney, updateDelimitedMoney, setDelimitedMoney, delimitedMoney } from \"./suchiUtil\"\nimport { handleUntenShikinSetSimulationBar } from \"./numBtn\"\n\n// 運転資金データ\nlet runningData = [\n  [0, 0, 0, 0, 0, 0, 0, 0],\n  [0, 0, 0, 0, 0, 0, 0, 0],\n  [0, 0, 0, 0, 0, 0, 0, 0],\n];\nlet uriageSum = [0, 0, 0];\nlet profit = [0, 0, 0];\n\nfunction getMonthlyUriage(year) {\n  return parseInt(uriageSum[year - 1] / 12);\n}\n\n// タブ切り替え\nfunction handleTabChange(e) {\n  const rangeForm = document.getElementById(\"running-slider\");\n  const runningInput = document.getElementById(\"running-input\");\n\n  const target = e.target;\n  const tabId = target.id.slice(-1);\n  rangeForm.style.display = \"grid\";\n  runningInput.style.display = \"none\";\n  // tabのview変更\n  const prevSelected = document.querySelector(\".nav-link.active\");\n  if (prevSelected) prevSelected.classList.remove(\"active\");\n  target.classList.add(\"active\");\n  const selectedYear = tabId;\n  // 運転資金項目の反映\n  changeUntenView(selectedYear)\n  // 月額利益の反映\n  updateMonthlyProfit(selectedYear);\n  changeProfitView(selectedYear);\n}\n\nfunction changeUntenView(year) {\n  const dataInputsRunning = document.querySelectorAll(\".data-input--running\");\n  const rangeInputsRunning = document.querySelectorAll(\".input-slider--running\");\n  dataInputsRunning.forEach((input, i) => {\n    input.value = runningData[year - 1][i].toLocaleString('ja-JP');\n  });\n\n  const maxRange = getMonthlyUriage(year) < 100 ? 100 : getMonthlyUriage(year);\n  rangeInputsRunning.forEach((input, i) => {\n    const inputData = runningData[year - 1][i];\n    input.max = maxRange\n    input.value = inputData;\n    input.defaultValue = inputData;\n    if (inputData !== 0) {\n      input.style.backgroundSize =\n        (inputData * 100) / input.max + 1 + \"% 100%\";\n    } else {\n      input.style.backgroundSize = \"0% 100%\";\n    }\n  });\n}\n\n// 比較タブのクリック時\nfunction handleClickCompareTab() {\n  // 現在のタブをinactiveにする\n  const prevSelected = document.querySelector(\".nav-link.active\");\n  if (prevSelected) prevSelected.classList.remove(\"active\");\n\n  const rangeForm = document.getElementById(\"running-slider\");\n  const runningInput = document.getElementById(\"running-input\");\n\n  rangeForm.style.display = \"none\";\n  runningInput.style.display = \"grid\";\n  setCompareInputs(runningData)\n}\n\nexport function handleSetCompareInputs() {\n  setCompareInputs(runningData);\n}\n\n// 比較タブにrunningDataの内容を反映する\nfunction setCompareInputs(runningData) {\n  const compareInputs = document.querySelectorAll(\".data-input--compare\");\n  const compareProfits = document.querySelectorAll(\".data-input--compare--profit\");\n\n  compareInputs.forEach((input, i) => {\n    const year = input.dataset.year;\n    const itemId = input.dataset.itemid;\n    input.value = runningData[year - 1][itemId - 1];\n    setDelimitedMoney(input);\n  });\n  compareProfits.forEach((input, i) => {\n    input.value = profit[i];\n    setDelimitedMoney(input);\n  });\n}\n\n// 比較タブ(支出項目)変更\nfunction handleCompareInputChange(event) {\n  const textFieldElement = event.target;\n  const val = sanitizeMoney(textFieldElement.value);\n\n  const inputId = textFieldElement.dataset.itemid;\n  const selectedYear = textFieldElement.dataset.year;\n\n  // text fieldをカンマ区切り&hidden fieldへのセット\n  updateDelimitedMoney(textFieldElement);\n\n  runningData[selectedYear - 1][inputId - 1] = val;\n  updateMonthlyProfit(selectedYear)\n  setCompareInputs(runningData)\n  updateAsideRunning();\n}\n\n// 比較タブ(利益項目)変更\nfunction handleCompareProfitChange(event) {\n  const textFieldElement = event.target;\n  const profitOfThisYear = sanitizeMoney(textFieldElement.value);\n  const selectedYear = textFieldElement.id.slice(-1);\n\n  updateItemsByProfit(selectedYear, profitOfThisYear);\n  setCompareInputs(runningData);\n  updateAsideRunning();\n}\n\n// 売上入力\nfunction handleUriageChange(event) {\n  const textFieldElement = event.target;\n\n  const currentTab = document.querySelector(\".nav-link.active\")\n  const currentTabId = currentTab ? Number(document.querySelector(\".nav-link.active\").id.slice(-1)) : 9999;\n\n  const uriageId = textFieldElement.id.slice(-1); // 末尾の数字を取得\n\n  uriageSum[uriageId - 1] = sanitizeMoney(textFieldElement.value);\n\n  // hidden fieldの更新\n  updateDelimitedMoney(textFieldElement);\n\n  // 売上入力後に利益を更新する\n  updateMonthlyProfit(uriageId)\n\n  if (Number(currentTabId) === Number(uriageId)) {\n    changeUntenView(uriageId);\n    changeProfitView(uriageId);\n  }\n\n  setCompareInputs(runningData)\n  updateAsideRunning();\n}\n\n// レンジスライダー運転資金\nfunction handleRangeInputRunningChange(e) {\n  const selectedYear = Number(document.querySelector(\".nav-link.active\").id.slice(-1));\n  const target = e.target;\n  const max = Number(target.max);\n  const val = Number(target.value);\n\n  const inputId = target.id.replace(\"input-slider--running\", \"data-input--running\");\n  const inputIdNum = inputId.slice(-1);\n  const inputElement = document.getElementById(inputId);\n  target.defaultValue = val;\n  inputElement.value = target.defaultValue;\n  runningData[selectedYear - 1][inputIdNum - 1] = val;\n\n  if (val !== 0) {\n    target.style.backgroundSize = (val * 100) / max + 1 + \"% 100%\";\n  } else {\n    target.style.backgroundSize = \"0% 100%\";\n  }\n\n  // 月額利益の更新\n  updateMonthlyProfit(selectedYear);\n  changeProfitView(selectedYear);\n  setCompareInputs(runningData)\n  updateAsideRunning();\n}\n\n// 運転資金数値入力\nfunction handleDataInputRunningChange(e) {\n  const selectedYear = Number(document.querySelector(\".nav-link.active\").id.slice(-1));\n\n  const target = e.target;\n  const val = sanitizeMoney(target.value);\n  const sliderId = target.id.replace(\"data-input--running\", \"input-slider--running\");\n  const sliderIdNum = sliderId.slice(-1);\n  const sliderElement = document.getElementById(sliderId);\n  \n  sliderElement.defaultValue = val;\n  sliderElement.value = val;\n  runningData[selectedYear - 1][sliderIdNum - 1] = val;\n  if (val !== 0) {\n    sliderElement.style.backgroundSize =\n      (val * 100) / sliderElement.max + 1 + \"% 100%\";\n  } else {\n    sliderElement.style.backgroundSize = \"0% 100%\";\n  }\n\n  // カンマ区切りに変更\n  target.value = delimitedMoney(target.value);\n\n  updateMonthlyProfit(selectedYear);\n  changeProfitView(selectedYear);\n  setCompareInputs(runningData)\n  updateAsideRunning();\n}\n\n// 月額利益\nfunction handleProfitSliderInput(e) {\n  const selectedYear = Number(document.querySelector(\".nav-link.active\").id.slice(-1));\n  const target = e.target;\n  const profitOfThisYear = Number(target.value);\n\n  updateItemsByProfit(selectedYear, profitOfThisYear);\n  changeRangeInputsView(selectedYear);\n  changeProfitView(selectedYear);\n  setCompareInputs(runningData)\n  updateAsideRunning();\n}\n\nfunction handleProfitChange(e) {\n  const selectedYear = Number(document.querySelector(\".nav-link.active\").id.slice(-1));\n\n  const target = e.target;\n  let profitOfThisYear = sanitizeMoney(target.value);\n\n  updateItemsByProfit(selectedYear, profitOfThisYear);\n  changeRangeInputsView(selectedYear);\n  changeProfitView(selectedYear);\n  setCompareInputs(runningData)\n  updateAsideRunning();\n}\n\nfunction handleProfitSliderBackground(e) {\n  // スライドしている間利益を表面上変わっているようにする\n  const target = e.target;\n  const val = Number(target.value);\n  const max = Number(target.max);\n  target.defaultValue = val;\n  if (val !== 0) {\n    target.style.backgroundSize = (val * 100) / max + 1 + \"% 100%\";\n  } else {\n    target.style.backgroundSize = \"0% 100%\";\n  }\n}\n\nfunction updateItemsByProfit(selectedYear, value) {\n  let profitOfThisYear = value;\n\n  // 利益の入力が月額売上以上だった場合、月額売上を上限として下方修正する\n  const monthlyUriage = getMonthlyUriage(selectedYear)\n  if (profitOfThisYear > monthlyUriage) profitOfThisYear = monthlyUriage;\n\n  let expense = runningData[selectedYear - 1].reduce((total, item) => {\n    return total + item;\n  });\n\n  // 月額売り上げが記入されていたら差額の計算をする\n  if (uriageSum[selectedYear - 1] !== 0) {\n    const isDeficit = expense + profitOfThisYear > monthlyUriage\n    // 利益と支出の合計が売り上げを上回ったら支出を減らす\n    const diff = Math.abs(expense + profitOfThisYear - monthlyUriage);\n    // 支出がゼロの場合、売上−利益分を支出それぞれに分配する\n    if (expense == 0) {\n      const runningDataSize = runningData[selectedYear - 1].length\n      runningData[selectedYear - 1] = runningData[selectedYear - 1].map(() => {\n        return parseInt((monthlyUriage - profitOfThisYear) / runningDataSize);\n      });\n    } else {\n      if (isDeficit) {\n        runningData[selectedYear - 1] = runningData[selectedYear - 1].map((data) => {\n          const ratio = data / expense;\n          return parseInt(data - ratio * diff);\n        });\n      } else {\n        runningData[selectedYear - 1] = runningData[selectedYear - 1].map((data) => {\n          const ratio = data / expense;\n          return parseInt(data + ratio * diff);\n        });\n      }\n    }\n    // 支出の計算をした上で再計算\n    expense = runningData[selectedYear - 1].reduce((total, item) => {\n      return total + item;\n    });\n    // 少数の切り捨てで誤差を利益を追加する\n    const salesDiff = monthlyUriage - (expense + profitOfThisYear);\n    profit[selectedYear - 1] = profitOfThisYear + salesDiff;\n  }\n}\n\nfunction changeRangeInputsView(selectedYear) {\n  try {\n    const rangeInputsRunning = document.querySelectorAll(\".input-slider--running\");\n    const dataInputsRunning = document.querySelectorAll(\".data-input--running\");\n    const maxRange = getMonthlyUriage(selectedYear) < 100 ? 100 : getMonthlyUriage(selectedYear)\n    runningData[selectedYear - 1].forEach((data, i) => {\n      if (data !== 0) {\n        rangeInputsRunning[i].max = maxRange\n        rangeInputsRunning[i].style.backgroundSize =\n          (data * 100) / rangeInputsRunning[i].max + 1 + \"% 100%\";\n        rangeInputsRunning[i].value = data;\n        rangeInputsRunning[i].defaultValue = data;\n        dataInputsRunning[i].value = data.toLocaleString('ja-JP');\n      } else {\n        rangeInputsRunning[i].max = maxRange;\n        rangeInputsRunning[i].style.backgroundSize = \"0% 100%\";\n        rangeInputsRunning[i].value = data;\n        rangeInputsRunning[i].defaultValue = data;\n        dataInputsRunning[i].value = data.toLocaleString('ja-JP');\n      }\n    });\n  } catch (error) {\n    // console.warn(error);\n  }\n}\n\nfunction updateMonthlyProfit(selectedYear) {\n  // 月額利益の更新\n  if (uriageSum[selectedYear - 1] !== 0) {\n    const expense = runningData[selectedYear - 1].reduce((total, item) => {\n      return total + item;\n    });\n    const diff = parseInt(uriageSum[selectedYear - 1] / 12 - expense);\n    profit[selectedYear - 1] = diff;\n  }\n}\n\nfunction changeProfitView(selectedYear) {\n  try {\n    const profitSliderInput = document.getElementById(\"input-slider--profit\");\n    const profitSumInput = document.getElementById(\"data-input--profit\");\n\n    const maxRange = getMonthlyUriage(selectedYear) < 100 ? 100 : getMonthlyUriage(selectedYear)\n    profitSliderInput.max = maxRange\n    profitSliderInput.value = profit[selectedYear - 1];\n    profitSliderInput.defaultValue = profit[selectedYear - 1];\n    if (profitSliderInput.value !== 0) {\n      profitSliderInput.style.backgroundSize =\n        (profitSliderInput.value * 100) / profitSliderInput.max + 1 + \"% 100%\";\n    } else {\n      profitSliderInput.style.backgroundSize = \"0% 100%\";\n    }\n    profitSumInput.value = profit[selectedYear - 1].toLocaleString('ja-JP');\n  } catch (error) {\n    // console.warn(error);\n  }\n}\n\nfunction updateAsideRunning() {\n  const expense1 = runningData[0].reduce((total, item) => {return total + item;}) * 12;\n  const expense2 = runningData[1].reduce((total, item) => {return total + item;}) * 12;\n  const expense3 = runningData[2].reduce((total, item) => {return total + item;}) * 12;\n  const yearlyProfit1 = profit[0] * 12\n  const yearlyProfit2 = profit[1] * 12\n  const yearlyProfit3 = profit[2] * 12 \n  if (document.getElementById(\"running-sum1\").textContent != uriageSum[0].toString()){\n    setWithCountAnimation(document.getElementById(\"running-sum1\"), 0, uriageSum[0]);\n  }\n  if (document.getElementById(\"running-sum2\").textContent != uriageSum[1].toString()){\n    setWithCountAnimation(document.getElementById(\"running-sum2\"), 0, uriageSum[1]);\n  }\n  if (document.getElementById(\"running-sum3\").textContent != uriageSum[2].toString()){\n    setWithCountAnimation(document.getElementById(\"running-sum3\"), 0, uriageSum[2]);\n  }\n  if (document.getElementById(\"running-cost1\").textContent != expense1.toString()){\n    setWithCountAnimation(document.getElementById(\"running-cost1\"), 0, expense1);\n  }\n  if (document.getElementById(\"running-cost2\").textContent != expense2.toString()){\n    setWithCountAnimation(document.getElementById(\"running-cost2\"), 0, expense2);\n  }\n  if (document.getElementById(\"running-cost3\").textContent != expense3.toString()){\n    setWithCountAnimation(document.getElementById(\"running-cost3\"), 0, expense3);\n  }\n  if (document.getElementById(\"running-profit1\").textContent != yearlyProfit1.toString()){\n    setWithCountAnimation(document.getElementById(\"running-profit1\"), 0, yearlyProfit1);\n  }\n  if (document.getElementById(\"running-profit2\").textContent != yearlyProfit2.toString()){\n    setWithCountAnimation(document.getElementById(\"running-profit2\"), 0, yearlyProfit2);\n  }\n  if (document.getElementById(\"running-profit3\").textContent != yearlyProfit3.toString()){\n    setWithCountAnimation(document.getElementById(\"running-profit3\"), 0, yearlyProfit3);\n  }\n\n  handleUntenShikinSetSimulationBar(\n    uriageSum[0], uriageSum[1], uriageSum[2],\n    expense1, expense2, expense3,\n    yearlyProfit1, yearlyProfit2, yearlyProfit3\n  );\n}\n\nexport function addSuchiKeikakuEventListenerAll() {\n  // 運転資金の年次ごとのタブクリック\n  const tabs = document.querySelectorAll(\".form-tab\");\n  tabs.forEach((tab) => {\n    tab.addEventListener(\"click\", handleTabChange);\n  });\n  try {\n    // 比較ボタンクリック\n    const compareTab = document.getElementById(\"tab--compare\");\n    compareTab.addEventListener(\"click\", handleClickCompareTab);\n  } catch (error) {\n    // console.warn(error);\n  }\n  // レンジスライダー運転資金\n  const rangeInputsRunning = document.querySelectorAll(\".input-slider--running\");\n  rangeInputsRunning.forEach((input) => {\n    input.addEventListener(\"input\", handleRangeInputRunningChange);\n  });\n  // レンジスライダー横のインプット運転資金\n  const dataInputsRunning = document.querySelectorAll(\".data-input--running\");\n  dataInputsRunning.forEach((input) => {\n    input.addEventListener(\"change\", handleDataInputRunningChange);\n  });\n\n  // 月額利益\n  try {\n    const profitSlider = document.getElementById(\"input-slider--profit\");\n    const profitInput = document.getElementById(\"data-input--profit\");\n    profitSlider.addEventListener(\"input\", handleProfitSliderBackground);\n    profitSlider.addEventListener(\"change\", handleProfitSliderInput);\n    profitInput.addEventListener(\"change\", handleProfitChange);\n  } catch (error) {\n    // console.log(error);\n  }\n\n  // 売上の変更イベント\n  const sumRunningInputs = document.querySelectorAll(\".js-uriage-input\");\n  sumRunningInputs.forEach((input) => {\n    input.addEventListener(\"change\", handleUriageChange);\n  });\n\n  // 運転資金比較項目\n  const compareInputs = document.querySelectorAll(\".js-untenshikin-input\");\n  const compareProfits = document.querySelectorAll(\".js-untenshikin-profit-input\");\n  compareInputs.forEach((input) => {\n    input.addEventListener(\"change\", handleCompareInputChange);\n  });\n  compareProfits.forEach((input) => {\n    input.addEventListener(\"change\", handleCompareProfitChange);\n  });\n}\n\nexport function setInitialValueForUntenShikin(){\n  // 売上のセット\n  const sumRunningInputs = document.querySelectorAll(\".data-sum--running\");\n  sumRunningInputs.forEach((input, index) => {\n    uriageSum[index] = Number(input.value);\n  });\n\n  // 運転資金のrunningDataのセット\n  const compareInputs = document.querySelectorAll(\".data-input--compare\");\n  compareInputs.forEach((input) => {\n    const inputId = input.dataset.itemid;\n    const year = input.dataset.year;\n    runningData[year - 1][inputId - 1] = sanitizeMoney(input.value);\n  });\n\n  // 月額利益のセット\n  [1, 2, 3].forEach((tab)=> {\n    updateMonthlyProfit(tab);\n  });\n\n  const selectedYear = 1;\n  changeRangeInputsView(selectedYear);\n  changeProfitView(selectedYear);\n  updateAsideRunning();\n}\n\nexport function hideYakuinHoshu() {\n  const businessType = $('input[name=\"founding_template[business_type]\"]:checked').val();\n  if(businessType !== \"hojin\") {\n    const yakuinhoshu1y = document.querySelector('input[name=\"founding_template[yakuinhoshu_1y]');\n    const yakuinhoshu2y = document.querySelector('input[name=\"founding_template[yakuinhoshu_2y]');\n    const yakuinhoshu3y = document.querySelector('input[name=\"founding_template[yakuinhoshu_3y]');\n    yakuinhoshu1y.value = 0;\n    yakuinhoshu2y.value = 0;\n    yakuinhoshu3y.value = 0;\n    // 役員報酬額をゼロにする\n    [yakuinhoshu1y, yakuinhoshu2y, yakuinhoshu3y].forEach((target) => {\n      const inputId = target.dataset.itemid;\n      const selectedYear = target.dataset.year;\n      runningData[selectedYear - 1][inputId - 1] = parseInt(target.value);\n      updateMonthlyProfit(selectedYear)\n    });\n\n    // サマリー部分の再セット\n    var selectedYear = 0;\n    if (document.querySelector(\".nav-link.active\")) selectedYear = Number(document.querySelector(\".nav-link.active\").id.slice(-1));\n    if (selectedYear !== 0) {\n      changeRangeInputsView(selectedYear);\n      changeProfitView(selectedYear);\n    }\n    updateAsideRunning();\n    $(\".js-yakuinHoshu\").addClass(\"d-none\");\n  } else {\n    $(\".js-yakuinHoshu\").removeClass(\"d-none\");\n  }\n}\n\n$(function() {\n  if (document.getElementById('startCalculationButton') == null && \n      document.getElementById('untenshikin_title_section')) {\n    setInitialValueForUntenShikin();\n    addSuchiKeikakuEventListenerAll();\n    // 事業形態が個人の場合は役員報酬を隠す\n    hideYakuinHoshu();\n    $('input[name=\"founding_template[business_type]\"]').on('change', function() {\n      hideYakuinHoshu();\n    });\n  }\n});","export function selectOnChangeSubmit(selectEl, hiddenEl, submitEl) {\n  $(selectEl).on('change', (e) => {\n    $(hiddenEl).val($(e.currentTarget).val());\n    $(submitEl).submit()\n  });\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n  var context = this;\n  (function () {\n    (function () {\n      this.Rails = {\n        linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n        buttonClickSelector: {\n          selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n          exclude: 'form button'\n        },\n        inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n        formSubmitSelector: 'form:not([data-turbo=true])',\n        formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n        formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n        formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n        fileInputSelector: 'input[name][type=file]:not([disabled])',\n        linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n        buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n      };\n    }).call(this);\n  }).call(context);\n  var Rails = context.Rails;\n  (function () {\n    (function () {\n      var nonce;\n      nonce = null;\n\n      Rails.loadCSPNonce = function () {\n        var ref;\n        return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n      };\n\n      Rails.cspNonce = function () {\n        return nonce != null ? nonce : Rails.loadCSPNonce();\n      };\n    }).call(this);\n    (function () {\n      var expando, m;\n      m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n      Rails.matches = function (element, selector) {\n        if (selector.exclude != null) {\n          return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n        } else {\n          return m.call(element, selector);\n        }\n      };\n\n      expando = '_ujsData';\n\n      Rails.getData = function (element, key) {\n        var ref;\n        return (ref = element[expando]) != null ? ref[key] : void 0;\n      };\n\n      Rails.setData = function (element, key, value) {\n        if (element[expando] == null) {\n          element[expando] = {};\n        }\n\n        return element[expando][key] = value;\n      };\n\n      Rails.$ = function (selector) {\n        return Array.prototype.slice.call(document.querySelectorAll(selector));\n      };\n    }).call(this);\n    (function () {\n      var $, csrfParam, csrfToken;\n      $ = Rails.$;\n\n      csrfToken = Rails.csrfToken = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-token]');\n        return meta && meta.content;\n      };\n\n      csrfParam = Rails.csrfParam = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-param]');\n        return meta && meta.content;\n      };\n\n      Rails.CSRFProtection = function (xhr) {\n        var token;\n        token = csrfToken();\n\n        if (token != null) {\n          return xhr.setRequestHeader('X-CSRF-Token', token);\n        }\n      };\n\n      Rails.refreshCSRFTokens = function () {\n        var param, token;\n        token = csrfToken();\n        param = csrfParam();\n\n        if (token != null && param != null) {\n          return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n            return input.value = token;\n          });\n        }\n      };\n    }).call(this);\n    (function () {\n      var CustomEvent, fire, matches, preventDefault;\n      matches = Rails.matches;\n      CustomEvent = window.CustomEvent;\n\n      if (typeof CustomEvent !== 'function') {\n        CustomEvent = function CustomEvent(event, params) {\n          var evt;\n          evt = document.createEvent('CustomEvent');\n          evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n          return evt;\n        };\n\n        CustomEvent.prototype = window.Event.prototype;\n        preventDefault = CustomEvent.prototype.preventDefault;\n\n        CustomEvent.prototype.preventDefault = function () {\n          var result;\n          result = preventDefault.call(this);\n\n          if (this.cancelable && !this.defaultPrevented) {\n            Object.defineProperty(this, 'defaultPrevented', {\n              get: function get() {\n                return true;\n              }\n            });\n          }\n\n          return result;\n        };\n      }\n\n      fire = Rails.fire = function (obj, name, data) {\n        var event;\n        event = new CustomEvent(name, {\n          bubbles: true,\n          cancelable: true,\n          detail: data\n        });\n        obj.dispatchEvent(event);\n        return !event.defaultPrevented;\n      };\n\n      Rails.stopEverything = function (e) {\n        fire(e.target, 'ujs:everythingStopped');\n        e.preventDefault();\n        e.stopPropagation();\n        return e.stopImmediatePropagation();\n      };\n\n      Rails.delegate = function (element, selector, eventType, handler) {\n        return element.addEventListener(eventType, function (e) {\n          var target;\n          target = e.target;\n\n          while (!(!(target instanceof Element) || matches(target, selector))) {\n            target = target.parentNode;\n          }\n\n          if (target instanceof Element && handler.call(target, e) === false) {\n            e.preventDefault();\n            return e.stopPropagation();\n          }\n        });\n      };\n    }).call(this);\n    (function () {\n      var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n      cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n      AcceptHeaders = {\n        '*': '*/*',\n        text: 'text/plain',\n        html: 'text/html',\n        xml: 'application/xml, text/xml',\n        json: 'application/json, text/javascript',\n        script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n      };\n\n      Rails.ajax = function (options) {\n        var xhr;\n        options = prepareOptions(options);\n        xhr = createXHR(options, function () {\n          var ref, response;\n          response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n          if (Math.floor(xhr.status / 100) === 2) {\n            if (typeof options.success === \"function\") {\n              options.success(response, xhr.statusText, xhr);\n            }\n          } else {\n            if (typeof options.error === \"function\") {\n              options.error(response, xhr.statusText, xhr);\n            }\n          }\n\n          return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n        });\n\n        if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n          return false;\n        }\n\n        if (xhr.readyState === XMLHttpRequest.OPENED) {\n          return xhr.send(options.data);\n        }\n      };\n\n      prepareOptions = function prepareOptions(options) {\n        options.url = options.url || location.href;\n        options.type = options.type.toUpperCase();\n\n        if (options.type === 'GET' && options.data) {\n          if (options.url.indexOf('?') < 0) {\n            options.url += '?' + options.data;\n          } else {\n            options.url += '&' + options.data;\n          }\n        }\n\n        if (AcceptHeaders[options.dataType] == null) {\n          options.dataType = '*';\n        }\n\n        options.accept = AcceptHeaders[options.dataType];\n\n        if (options.dataType !== '*') {\n          options.accept += ', */*; q=0.01';\n        }\n\n        return options;\n      };\n\n      createXHR = function createXHR(options, done) {\n        var xhr;\n        xhr = new XMLHttpRequest();\n        xhr.open(options.type, options.url, true);\n        xhr.setRequestHeader('Accept', options.accept);\n\n        if (typeof options.data === 'string') {\n          xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n        }\n\n        if (!options.crossDomain) {\n          xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n          CSRFProtection(xhr);\n        }\n\n        xhr.withCredentials = !!options.withCredentials;\n\n        xhr.onreadystatechange = function () {\n          if (xhr.readyState === XMLHttpRequest.DONE) {\n            return done(xhr);\n          }\n        };\n\n        return xhr;\n      };\n\n      processResponse = function processResponse(response, type) {\n        var parser, script;\n\n        if (typeof response === 'string' && typeof type === 'string') {\n          if (type.match(/\\bjson\\b/)) {\n            try {\n              response = JSON.parse(response);\n            } catch (error) {}\n          } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n            script = document.createElement('script');\n            script.setAttribute('nonce', cspNonce());\n            script.text = response;\n            document.head.appendChild(script).parentNode.removeChild(script);\n          } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n            parser = new DOMParser();\n            type = type.replace(/;.+/, '');\n\n            try {\n              response = parser.parseFromString(response, type);\n            } catch (error) {}\n          }\n        }\n\n        return response;\n      };\n\n      Rails.href = function (element) {\n        return element.href;\n      };\n\n      Rails.isCrossDomain = function (url) {\n        var e, originAnchor, urlAnchor;\n        originAnchor = document.createElement('a');\n        originAnchor.href = location.href;\n        urlAnchor = document.createElement('a');\n\n        try {\n          urlAnchor.href = url;\n          return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n        } catch (error) {\n          e = error;\n          return true;\n        }\n      };\n    }).call(this);\n    (function () {\n      var matches, toArray;\n      matches = Rails.matches;\n\n      toArray = function toArray(e) {\n        return Array.prototype.slice.call(e);\n      };\n\n      Rails.serializeElement = function (element, additionalParam) {\n        var inputs, params;\n        inputs = [element];\n\n        if (matches(element, 'form')) {\n          inputs = toArray(element.elements);\n        }\n\n        params = [];\n        inputs.forEach(function (input) {\n          if (!input.name || input.disabled) {\n            return;\n          }\n\n          if (matches(input, 'fieldset[disabled] *')) {\n            return;\n          }\n\n          if (matches(input, 'select')) {\n            return toArray(input.options).forEach(function (option) {\n              if (option.selected) {\n                return params.push({\n                  name: input.name,\n                  value: option.value\n                });\n              }\n            });\n          } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n            return params.push({\n              name: input.name,\n              value: input.value\n            });\n          }\n        });\n\n        if (additionalParam) {\n          params.push(additionalParam);\n        }\n\n        return params.map(function (param) {\n          if (param.name != null) {\n            return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n          } else {\n            return param;\n          }\n        }).join('&');\n      };\n\n      Rails.formElements = function (form, selector) {\n        if (matches(form, 'form')) {\n          return toArray(form.elements).filter(function (el) {\n            return matches(el, selector);\n          });\n        } else {\n          return toArray(form.querySelectorAll(selector));\n        }\n      };\n    }).call(this);\n    (function () {\n      var allowAction, fire, stopEverything;\n      fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n      Rails.handleConfirm = function (e) {\n        if (!allowAction(this)) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.confirm = function (message, element) {\n        return confirm(message);\n      };\n\n      allowAction = function allowAction(element) {\n        var answer, callback, message;\n        message = element.getAttribute('data-confirm');\n\n        if (!message) {\n          return true;\n        }\n\n        answer = false;\n\n        if (fire(element, 'confirm')) {\n          try {\n            answer = Rails.confirm(message, element);\n          } catch (error) {}\n\n          callback = fire(element, 'confirm:complete', [answer]);\n        }\n\n        return answer && callback;\n      };\n    }).call(this);\n    (function () {\n      var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n      Rails.handleDisabledElement = function (e) {\n        var element;\n        element = this;\n\n        if (element.disabled) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.enableElement = function (e) {\n        var element;\n\n        if (e instanceof Event) {\n          if (isXhrRedirect(e)) {\n            return;\n          }\n\n          element = e.target;\n        } else {\n          element = e;\n        }\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return enableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n          return enableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return enableFormElements(element);\n        }\n      };\n\n      Rails.disableElement = function (e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return disableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n          return disableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return disableFormElements(element);\n        }\n      };\n\n      disableLinkElement = function disableLinkElement(element) {\n        var replacement;\n\n        if (getData(element, 'ujs:disabled')) {\n          return;\n        }\n\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          setData(element, 'ujs:enable-with', element.innerHTML);\n          element.innerHTML = replacement;\n        }\n\n        element.addEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableLinkElement = function enableLinkElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          element.innerHTML = originalText;\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.removeEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      disableFormElements = function disableFormElements(form) {\n        return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n      };\n\n      disableFormElement = function disableFormElement(element) {\n        var replacement;\n\n        if (getData(element, 'ujs:disabled')) {\n          return;\n        }\n\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          if (matches(element, 'button')) {\n            setData(element, 'ujs:enable-with', element.innerHTML);\n            element.innerHTML = replacement;\n          } else {\n            setData(element, 'ujs:enable-with', element.value);\n            element.value = replacement;\n          }\n        }\n\n        element.disabled = true;\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableFormElements = function enableFormElements(form) {\n        return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n      };\n\n      enableFormElement = function enableFormElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          if (matches(element, 'button')) {\n            element.innerHTML = originalText;\n          } else {\n            element.value = originalText;\n          }\n\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.disabled = false;\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      isXhrRedirect = function isXhrRedirect(event) {\n        var ref, xhr;\n        xhr = (ref = event.detail) != null ? ref[0] : void 0;\n        return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n      };\n    }).call(this);\n    (function () {\n      var stopEverything;\n      stopEverything = Rails.stopEverything;\n\n      Rails.handleMethod = function (e) {\n        var csrfParam, csrfToken, form, formContent, href, link, method;\n        link = this;\n        method = link.getAttribute('data-method');\n\n        if (!method) {\n          return;\n        }\n\n        href = Rails.href(link);\n        csrfToken = Rails.csrfToken();\n        csrfParam = Rails.csrfParam();\n        form = document.createElement('form');\n        formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n\n        if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n          formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n        }\n\n        formContent += '<input type=\"submit\" />';\n        form.method = 'post';\n        form.action = href;\n        form.target = link.target;\n        form.innerHTML = formContent;\n        form.style.display = 'none';\n        document.body.appendChild(form);\n        form.querySelector('[type=\"submit\"]').click();\n        return stopEverything(e);\n      };\n    }).call(this);\n    (function () {\n      var ajax,\n          fire,\n          getData,\n          isCrossDomain,\n          isRemote,\n          matches,\n          serializeElement,\n          setData,\n          stopEverything,\n          slice = [].slice;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n      isRemote = function isRemote(element) {\n        var value;\n        value = element.getAttribute('data-remote');\n        return value != null && value !== 'false';\n      };\n\n      Rails.handleRemote = function (e) {\n        var button, data, dataType, element, method, url, withCredentials;\n        element = this;\n\n        if (!isRemote(element)) {\n          return true;\n        }\n\n        if (!fire(element, 'ajax:before')) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n\n        withCredentials = element.getAttribute('data-with-credentials');\n        dataType = element.getAttribute('data-type') || 'script';\n\n        if (matches(element, Rails.formSubmitSelector)) {\n          button = getData(element, 'ujs:submit-button');\n          method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n          url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n          if (method.toUpperCase() === 'GET') {\n            url = url.replace(/\\?.*$/, '');\n          }\n\n          if (element.enctype === 'multipart/form-data') {\n            data = new FormData(element);\n\n            if (button != null) {\n              data.append(button.name, button.value);\n            }\n          } else {\n            data = serializeElement(element, button);\n          }\n\n          setData(element, 'ujs:submit-button', null);\n          setData(element, 'ujs:submit-button-formmethod', null);\n          setData(element, 'ujs:submit-button-formaction', null);\n        } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n          method = element.getAttribute('data-method');\n          url = element.getAttribute('data-url');\n          data = serializeElement(element, element.getAttribute('data-params'));\n        } else {\n          method = element.getAttribute('data-method');\n          url = Rails.href(element);\n          data = element.getAttribute('data-params');\n        }\n\n        ajax({\n          type: method || 'GET',\n          url: url,\n          data: data,\n          dataType: dataType,\n          beforeSend: function beforeSend(xhr, options) {\n            if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n              return fire(element, 'ajax:send', [xhr]);\n            } else {\n              fire(element, 'ajax:stopped');\n              return false;\n            }\n          },\n          success: function success() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:success', args);\n          },\n          error: function error() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:error', args);\n          },\n          complete: function complete() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:complete', args);\n          },\n          crossDomain: isCrossDomain(url),\n          withCredentials: withCredentials != null && withCredentials !== 'false'\n        });\n        return stopEverything(e);\n      };\n\n      Rails.formSubmitButtonClick = function (e) {\n        var button, form;\n        button = this;\n        form = button.form;\n\n        if (!form) {\n          return;\n        }\n\n        if (button.name) {\n          setData(form, 'ujs:submit-button', {\n            name: button.name,\n            value: button.value\n          });\n        }\n\n        setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n        setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n        return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n      };\n\n      Rails.preventInsignificantClick = function (e) {\n        var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n        link = this;\n        method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n        data = link.getAttribute('data-params');\n        metaClick = e.metaKey || e.ctrlKey;\n        insignificantMetaClick = metaClick && method === 'GET' && !data;\n        nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n        if (nonPrimaryMouseClick || insignificantMetaClick) {\n          return e.stopImmediatePropagation();\n        }\n      };\n    }).call(this);\n    (function () {\n      var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n      fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n      if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n        if (jQuery.rails) {\n          throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n        }\n\n        jQuery.rails = Rails;\n        jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n          if (!options.crossDomain) {\n            return CSRFProtection(xhr);\n          }\n        });\n      }\n\n      Rails.start = function () {\n        if (window._rails_loaded) {\n          throw new Error('rails-ujs has already been loaded!');\n        }\n\n        window.addEventListener('pageshow', function () {\n          $(Rails.formEnableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n          return $(Rails.linkDisableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n        });\n        delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.linkClickSelector, 'click', disableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n        delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n        delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n        delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n        delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n        delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n          return setTimeout(function () {\n            return disableElement(e);\n          }, 13);\n        });\n        delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n        delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n        document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n        document.addEventListener('DOMContentLoaded', loadCSPNonce);\n        return window._rails_loaded = true;\n      };\n\n      if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n        Rails.start();\n      }\n    }).call(this);\n  }).call(this);\n\n  if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n    module.exports = Rails;\n  } else if (typeof define === \"function\" && define.amd) {\n    define(Rails);\n  }\n}).call(this);","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\nvar sparkMd5 = {\n  exports: {}\n};\n\n(function (module, exports) {\n  (function (factory) {\n    {\n      module.exports = factory();\n    }\n  })(function (undefined$1) {\n    var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n    function md5cycle(x, k) {\n      var a = x[0],\n          b = x[1],\n          c = x[2],\n          d = x[3];\n      a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[10] - 42063 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b ^ c ^ d) + k[5] - 378558 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      x[0] = a + x[0] | 0;\n      x[1] = b + x[1] | 0;\n      x[2] = c + x[2] | 0;\n      x[3] = d + x[3] | 0;\n    }\n\n    function md5blk(s) {\n      var md5blks = [],\n          i;\n\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n      }\n\n      return md5blks;\n    }\n\n    function md5blk_array(a) {\n      var md5blks = [],\n          i;\n\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n      }\n\n      return md5blks;\n    }\n\n    function md51(s) {\n      var n = s.length,\n          state = [1732584193, -271733879, -1732584194, 271733878],\n          i,\n          length,\n          tail,\n          tmp,\n          lo,\n          hi;\n\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk(s.substring(i - 64, i)));\n      }\n\n      s = s.substring(i - 64);\n      length = s.length;\n      tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n      }\n\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n\n      if (i > 55) {\n        md5cycle(state, tail);\n\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n\n    function md51_array(a) {\n      var n = a.length,\n          state = [1732584193, -271733879, -1732584194, 271733878],\n          i,\n          length,\n          tail,\n          tmp,\n          lo,\n          hi;\n\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n      }\n\n      a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n      length = a.length;\n      tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= a[i] << (i % 4 << 3);\n      }\n\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n\n      if (i > 55) {\n        md5cycle(state, tail);\n\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n\n    function rhex(n) {\n      var s = \"\",\n          j;\n\n      for (j = 0; j < 4; j += 1) {\n        s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n      }\n\n      return s;\n    }\n\n    function hex(x) {\n      var i;\n\n      for (i = 0; i < x.length; i += 1) {\n        x[i] = rhex(x[i]);\n      }\n\n      return x.join(\"\");\n    }\n\n    if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n    if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n      (function () {\n        function clamp(val, length) {\n          val = val | 0 || 0;\n\n          if (val < 0) {\n            return Math.max(val + length, 0);\n          }\n\n          return Math.min(val, length);\n        }\n\n        ArrayBuffer.prototype.slice = function (from, to) {\n          var length = this.byteLength,\n              begin = clamp(from, length),\n              end = length,\n              num,\n              target,\n              targetArray,\n              sourceArray;\n\n          if (to !== undefined$1) {\n            end = clamp(to, length);\n          }\n\n          if (begin > end) {\n            return new ArrayBuffer(0);\n          }\n\n          num = end - begin;\n          target = new ArrayBuffer(num);\n          targetArray = new Uint8Array(target);\n          sourceArray = new Uint8Array(this, begin, num);\n          targetArray.set(sourceArray);\n          return target;\n        };\n      })();\n    }\n\n    function toUtf8(str) {\n      if (/[\\u0080-\\uFFFF]/.test(str)) {\n        str = unescape(encodeURIComponent(str));\n      }\n\n      return str;\n    }\n\n    function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n      var length = str.length,\n          buff = new ArrayBuffer(length),\n          arr = new Uint8Array(buff),\n          i;\n\n      for (i = 0; i < length; i += 1) {\n        arr[i] = str.charCodeAt(i);\n      }\n\n      return returnUInt8Array ? arr : buff;\n    }\n\n    function arrayBuffer2Utf8Str(buff) {\n      return String.fromCharCode.apply(null, new Uint8Array(buff));\n    }\n\n    function concatenateArrayBuffers(first, second, returnUInt8Array) {\n      var result = new Uint8Array(first.byteLength + second.byteLength);\n      result.set(new Uint8Array(first));\n      result.set(new Uint8Array(second), first.byteLength);\n      return returnUInt8Array ? result : result.buffer;\n    }\n\n    function hexToBinaryString(hex) {\n      var bytes = [],\n          length = hex.length,\n          x;\n\n      for (x = 0; x < length - 1; x += 2) {\n        bytes.push(parseInt(hex.substr(x, 2), 16));\n      }\n\n      return String.fromCharCode.apply(String, bytes);\n    }\n\n    function SparkMD5() {\n      this.reset();\n    }\n\n    SparkMD5.prototype.append = function (str) {\n      this.appendBinary(toUtf8(str));\n      return this;\n    };\n\n    SparkMD5.prototype.appendBinary = function (contents) {\n      this._buff += contents;\n      this._length += contents.length;\n      var length = this._buff.length,\n          i;\n\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n      }\n\n      this._buff = this._buff.substring(i - 64);\n      return this;\n    };\n\n    SparkMD5.prototype.end = function (raw) {\n      var buff = this._buff,\n          length = buff.length,\n          i,\n          tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n          ret;\n\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n      }\n\n      this._finish(tail, length);\n\n      ret = hex(this._hash);\n\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n\n      this.reset();\n      return ret;\n    };\n\n    SparkMD5.prototype.reset = function () {\n      this._buff = \"\";\n      this._length = 0;\n      this._hash = [1732584193, -271733879, -1732584194, 271733878];\n      return this;\n    };\n\n    SparkMD5.prototype.getState = function () {\n      return {\n        buff: this._buff,\n        length: this._length,\n        hash: this._hash.slice()\n      };\n    };\n\n    SparkMD5.prototype.setState = function (state) {\n      this._buff = state.buff;\n      this._length = state.length;\n      this._hash = state.hash;\n      return this;\n    };\n\n    SparkMD5.prototype.destroy = function () {\n      delete this._hash;\n      delete this._buff;\n      delete this._length;\n    };\n\n    SparkMD5.prototype._finish = function (tail, length) {\n      var i = length,\n          tmp,\n          lo,\n          hi;\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n\n      if (i > 55) {\n        md5cycle(this._hash, tail);\n\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n\n      tmp = this._length * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(this._hash, tail);\n    };\n\n    SparkMD5.hash = function (str, raw) {\n      return SparkMD5.hashBinary(toUtf8(str), raw);\n    };\n\n    SparkMD5.hashBinary = function (content, raw) {\n      var hash = md51(content),\n          ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n\n    SparkMD5.ArrayBuffer = function () {\n      this.reset();\n    };\n\n    SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n      var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n          length = buff.length,\n          i;\n      this._length += arr.byteLength;\n\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n      }\n\n      this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n      return this;\n    };\n\n    SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n      var buff = this._buff,\n          length = buff.length,\n          tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n          i,\n          ret;\n\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff[i] << (i % 4 << 3);\n      }\n\n      this._finish(tail, length);\n\n      ret = hex(this._hash);\n\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n\n      this.reset();\n      return ret;\n    };\n\n    SparkMD5.ArrayBuffer.prototype.reset = function () {\n      this._buff = new Uint8Array(0);\n      this._length = 0;\n      this._hash = [1732584193, -271733879, -1732584194, 271733878];\n      return this;\n    };\n\n    SparkMD5.ArrayBuffer.prototype.getState = function () {\n      var state = SparkMD5.prototype.getState.call(this);\n      state.buff = arrayBuffer2Utf8Str(state.buff);\n      return state;\n    };\n\n    SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n      state.buff = utf8Str2ArrayBuffer(state.buff, true);\n      return SparkMD5.prototype.setState.call(this, state);\n    };\n\n    SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n    SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n    SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n      var hash = md51_array(new Uint8Array(arr)),\n          ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n\n    return SparkMD5;\n  });\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\nvar fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nvar FileChecksum = /*#__PURE__*/function () {\n  function FileChecksum(file) {\n    _classCallCheck(this, FileChecksum);\n\n    this.file = file;\n    this.chunkSize = 2097152;\n    this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n    this.chunkIndex = 0;\n  }\n\n  _createClass(FileChecksum, [{\n    key: \"create\",\n    value: function create(callback) {\n      var _this = this;\n\n      this.callback = callback;\n      this.md5Buffer = new SparkMD5.ArrayBuffer();\n      this.fileReader = new FileReader();\n      this.fileReader.addEventListener(\"load\", function (event) {\n        return _this.fileReaderDidLoad(event);\n      });\n      this.fileReader.addEventListener(\"error\", function (event) {\n        return _this.fileReaderDidError(event);\n      });\n      this.readNextChunk();\n    }\n  }, {\n    key: \"fileReaderDidLoad\",\n    value: function fileReaderDidLoad(event) {\n      this.md5Buffer.append(event.target.result);\n\n      if (!this.readNextChunk()) {\n        var binaryDigest = this.md5Buffer.end(true);\n        var base64digest = btoa(binaryDigest);\n        this.callback(null, base64digest);\n      }\n    }\n  }, {\n    key: \"fileReaderDidError\",\n    value: function fileReaderDidError(event) {\n      this.callback(\"Error reading \".concat(this.file.name));\n    }\n  }, {\n    key: \"readNextChunk\",\n    value: function readNextChunk() {\n      if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n        var _start = this.chunkIndex * this.chunkSize;\n\n        var end = Math.min(_start + this.chunkSize, this.file.size);\n        var bytes = fileSlice.call(this.file, _start, end);\n        this.fileReader.readAsArrayBuffer(bytes);\n        this.chunkIndex++;\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }], [{\n    key: \"create\",\n    value: function create(file, callback) {\n      var instance = new FileChecksum(file);\n      instance.create(callback);\n    }\n  }]);\n\n  return FileChecksum;\n}();\n\nfunction getMetaValue(name) {\n  var element = findElement(document.head, \"meta[name=\\\"\".concat(name, \"\\\"]\"));\n\n  if (element) {\n    return element.getAttribute(\"content\");\n  }\n}\n\nfunction findElements(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n\n  var elements = root.querySelectorAll(selector);\n  return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n\n  return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type) {\n  var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var disabled = element.disabled;\n  var bubbles = eventInit.bubbles,\n      cancelable = eventInit.cancelable,\n      detail = eventInit.detail;\n  var event = document.createEvent(\"Event\");\n  event.initEvent(type, bubbles || true, cancelable || true);\n  event.detail = detail || {};\n\n  try {\n    element.disabled = false;\n    element.dispatchEvent(event);\n  } finally {\n    element.disabled = disabled;\n  }\n\n  return event;\n}\n\nfunction toArray(value) {\n  if (Array.isArray(value)) {\n    return value;\n  } else if (Array.from) {\n    return Array.from(value);\n  } else {\n    return [].slice.call(value);\n  }\n}\n\nvar BlobRecord = /*#__PURE__*/function () {\n  function BlobRecord(file, checksum, url) {\n    var _this2 = this;\n\n    _classCallCheck(this, BlobRecord);\n\n    this.file = file;\n    this.attributes = {\n      filename: file.name,\n      content_type: file.type || \"application/octet-stream\",\n      byte_size: file.size,\n      checksum: checksum\n    };\n    this.xhr = new XMLHttpRequest();\n    this.xhr.open(\"POST\", url, true);\n    this.xhr.responseType = \"json\";\n    this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n    this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n    this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n    var csrfToken = getMetaValue(\"csrf-token\");\n\n    if (csrfToken != undefined) {\n      this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n    }\n\n    this.xhr.addEventListener(\"load\", function (event) {\n      return _this2.requestDidLoad(event);\n    });\n    this.xhr.addEventListener(\"error\", function (event) {\n      return _this2.requestDidError(event);\n    });\n  }\n\n  _createClass(BlobRecord, [{\n    key: \"status\",\n    get: function get() {\n      return this.xhr.status;\n    }\n  }, {\n    key: \"response\",\n    get: function get() {\n      var _this$xhr = this.xhr,\n          responseType = _this$xhr.responseType,\n          response = _this$xhr.response;\n\n      if (responseType == \"json\") {\n        return response;\n      } else {\n        return JSON.parse(response);\n      }\n    }\n  }, {\n    key: \"create\",\n    value: function create(callback) {\n      this.callback = callback;\n      this.xhr.send(JSON.stringify({\n        blob: this.attributes\n      }));\n    }\n  }, {\n    key: \"requestDidLoad\",\n    value: function requestDidLoad(event) {\n      if (this.status >= 200 && this.status < 300) {\n        var response = this.response;\n        var direct_upload = response.direct_upload;\n        delete response.direct_upload;\n        this.attributes = response;\n        this.directUploadData = direct_upload;\n        this.callback(null, this.toJSON());\n      } else {\n        this.requestDidError(event);\n      }\n    }\n  }, {\n    key: \"requestDidError\",\n    value: function requestDidError(event) {\n      this.callback(\"Error creating Blob for \\\"\".concat(this.file.name, \"\\\". Status: \").concat(this.status));\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var result = {};\n\n      for (var key in this.attributes) {\n        result[key] = this.attributes[key];\n      }\n\n      return result;\n    }\n  }]);\n\n  return BlobRecord;\n}();\n\nvar BlobUpload = /*#__PURE__*/function () {\n  function BlobUpload(blob) {\n    var _this3 = this;\n\n    _classCallCheck(this, BlobUpload);\n\n    this.blob = blob;\n    this.file = blob.file;\n    var _blob$directUploadDat = blob.directUploadData,\n        url = _blob$directUploadDat.url,\n        headers = _blob$directUploadDat.headers;\n    this.xhr = new XMLHttpRequest();\n    this.xhr.open(\"PUT\", url, true);\n    this.xhr.responseType = \"text\";\n\n    for (var key in headers) {\n      this.xhr.setRequestHeader(key, headers[key]);\n    }\n\n    this.xhr.addEventListener(\"load\", function (event) {\n      return _this3.requestDidLoad(event);\n    });\n    this.xhr.addEventListener(\"error\", function (event) {\n      return _this3.requestDidError(event);\n    });\n  }\n\n  _createClass(BlobUpload, [{\n    key: \"create\",\n    value: function create(callback) {\n      this.callback = callback;\n      this.xhr.send(this.file.slice());\n    }\n  }, {\n    key: \"requestDidLoad\",\n    value: function requestDidLoad(event) {\n      var _this$xhr2 = this.xhr,\n          status = _this$xhr2.status,\n          response = _this$xhr2.response;\n\n      if (status >= 200 && status < 300) {\n        this.callback(null, response);\n      } else {\n        this.requestDidError(event);\n      }\n    }\n  }, {\n    key: \"requestDidError\",\n    value: function requestDidError(event) {\n      this.callback(\"Error storing \\\"\".concat(this.file.name, \"\\\". Status: \").concat(this.xhr.status));\n    }\n  }]);\n\n  return BlobUpload;\n}();\n\nvar id = 0;\n\nvar DirectUpload = /*#__PURE__*/function () {\n  function DirectUpload(file, url, delegate) {\n    _classCallCheck(this, DirectUpload);\n\n    this.id = ++id;\n    this.file = file;\n    this.url = url;\n    this.delegate = delegate;\n  }\n\n  _createClass(DirectUpload, [{\n    key: \"create\",\n    value: function create(callback) {\n      var _this4 = this;\n\n      FileChecksum.create(this.file, function (error, checksum) {\n        if (error) {\n          callback(error);\n          return;\n        }\n\n        var blob = new BlobRecord(_this4.file, checksum, _this4.url);\n        notify(_this4.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n        blob.create(function (error) {\n          if (error) {\n            callback(error);\n          } else {\n            var upload = new BlobUpload(blob);\n            notify(_this4.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n            upload.create(function (error) {\n              if (error) {\n                callback(error);\n              } else {\n                callback(null, blob.toJSON());\n              }\n            });\n          }\n        });\n      });\n    }\n  }]);\n\n  return DirectUpload;\n}();\n\nfunction notify(object, methodName) {\n  if (object && typeof object[methodName] == \"function\") {\n    for (var _len = arguments.length, messages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      messages[_key - 2] = arguments[_key];\n    }\n\n    return object[methodName].apply(object, messages);\n  }\n}\n\nvar DirectUploadController = /*#__PURE__*/function () {\n  function DirectUploadController(input, file) {\n    _classCallCheck(this, DirectUploadController);\n\n    this.input = input;\n    this.file = file;\n    this.directUpload = new DirectUpload(this.file, this.url, this);\n    this.dispatch(\"initialize\");\n  }\n\n  _createClass(DirectUploadController, [{\n    key: \"start\",\n    value: function start(callback) {\n      var _this5 = this;\n\n      var hiddenInput = document.createElement(\"input\");\n      hiddenInput.type = \"hidden\";\n      hiddenInput.name = this.input.name;\n      this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n      this.dispatch(\"start\");\n      this.directUpload.create(function (error, attributes) {\n        if (error) {\n          hiddenInput.parentNode.removeChild(hiddenInput);\n\n          _this5.dispatchError(error);\n        } else {\n          hiddenInput.value = attributes.signed_id;\n        }\n\n        _this5.dispatch(\"end\");\n\n        callback(error);\n      });\n    }\n  }, {\n    key: \"uploadRequestDidProgress\",\n    value: function uploadRequestDidProgress(event) {\n      var progress = event.loaded / event.total * 100;\n\n      if (progress) {\n        this.dispatch(\"progress\", {\n          progress: progress\n        });\n      }\n    }\n  }, {\n    key: \"url\",\n    get: function get() {\n      return this.input.getAttribute(\"data-direct-upload-url\");\n    }\n  }, {\n    key: \"dispatch\",\n    value: function dispatch(name) {\n      var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      detail.file = this.file;\n      detail.id = this.directUpload.id;\n      return dispatchEvent(this.input, \"direct-upload:\".concat(name), {\n        detail: detail\n      });\n    }\n  }, {\n    key: \"dispatchError\",\n    value: function dispatchError(error) {\n      var event = this.dispatch(\"error\", {\n        error: error\n      });\n\n      if (!event.defaultPrevented) {\n        alert(error);\n      }\n    }\n  }, {\n    key: \"directUploadWillCreateBlobWithXHR\",\n    value: function directUploadWillCreateBlobWithXHR(xhr) {\n      this.dispatch(\"before-blob-request\", {\n        xhr: xhr\n      });\n    }\n  }, {\n    key: \"directUploadWillStoreFileWithXHR\",\n    value: function directUploadWillStoreFileWithXHR(xhr) {\n      var _this6 = this;\n\n      this.dispatch(\"before-storage-request\", {\n        xhr: xhr\n      });\n      xhr.upload.addEventListener(\"progress\", function (event) {\n        return _this6.uploadRequestDidProgress(event);\n      });\n    }\n  }]);\n\n  return DirectUploadController;\n}();\n\nvar inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nvar DirectUploadsController = /*#__PURE__*/function () {\n  function DirectUploadsController(form) {\n    _classCallCheck(this, DirectUploadsController);\n\n    this.form = form;\n    this.inputs = findElements(form, inputSelector).filter(function (input) {\n      return input.files.length;\n    });\n  }\n\n  _createClass(DirectUploadsController, [{\n    key: \"start\",\n    value: function start(callback) {\n      var _this7 = this;\n\n      var controllers = this.createDirectUploadControllers();\n\n      var startNextController = function startNextController() {\n        var controller = controllers.shift();\n\n        if (controller) {\n          controller.start(function (error) {\n            if (error) {\n              callback(error);\n\n              _this7.dispatch(\"end\");\n            } else {\n              startNextController();\n            }\n          });\n        } else {\n          callback();\n\n          _this7.dispatch(\"end\");\n        }\n      };\n\n      this.dispatch(\"start\");\n      startNextController();\n    }\n  }, {\n    key: \"createDirectUploadControllers\",\n    value: function createDirectUploadControllers() {\n      var controllers = [];\n      this.inputs.forEach(function (input) {\n        toArray(input.files).forEach(function (file) {\n          var controller = new DirectUploadController(input, file);\n          controllers.push(controller);\n        });\n      });\n      return controllers;\n    }\n  }, {\n    key: \"dispatch\",\n    value: function dispatch(name) {\n      var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      return dispatchEvent(this.form, \"direct-uploads:\".concat(name), {\n        detail: detail\n      });\n    }\n  }]);\n\n  return DirectUploadsController;\n}();\n\nvar processingAttribute = \"data-direct-uploads-processing\";\nvar submitButtonsByForm = new WeakMap();\nvar started = false;\n\nfunction start() {\n  if (!started) {\n    started = true;\n    document.addEventListener(\"click\", didClick, true);\n    document.addEventListener(\"submit\", didSubmitForm, true);\n    document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n  }\n}\n\nfunction didClick(event) {\n  var target = event.target;\n\n  if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n    submitButtonsByForm.set(target.form, target);\n  }\n}\n\nfunction didSubmitForm(event) {\n  handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n  if (event.target.tagName == \"FORM\") {\n    handleFormSubmissionEvent(event);\n  }\n}\n\nfunction handleFormSubmissionEvent(event) {\n  var form = event.target;\n\n  if (form.hasAttribute(processingAttribute)) {\n    event.preventDefault();\n    return;\n  }\n\n  var controller = new DirectUploadsController(form);\n  var inputs = controller.inputs;\n\n  if (inputs.length) {\n    event.preventDefault();\n    form.setAttribute(processingAttribute, \"\");\n    inputs.forEach(disable);\n    controller.start(function (error) {\n      form.removeAttribute(processingAttribute);\n\n      if (error) {\n        inputs.forEach(enable);\n      } else {\n        submitForm(form);\n      }\n    });\n  }\n}\n\nfunction submitForm(form) {\n  var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n  if (button) {\n    var _button = button,\n        disabled = _button.disabled;\n    button.disabled = false;\n    button.focus();\n    button.click();\n    button.disabled = disabled;\n  } else {\n    button = document.createElement(\"input\");\n    button.type = \"submit\";\n    button.style.display = \"none\";\n    form.appendChild(button);\n    button.click();\n    form.removeChild(button);\n  }\n\n  submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n  input.disabled = true;\n}\n\nfunction enable(input) {\n  input.disabled = false;\n}\n\nfunction autostart() {\n  if (window.ActiveStorage) {\n    start();\n  }\n}\n\nsetTimeout(autostart, 1);\nexport { DirectUpload, start };","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\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 _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\n/**\n * Swiper 8.4.4\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: October 12, 2022\n */\n(function (global, factory) {\n  (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Swiper = factory());\n})(this, function () {\n  'use strict';\n  /**\n   * SSR Window 4.0.2\n   * Better handling for window object in SSR environment\n   * https://github.com/nolimits4web/ssr-window\n   *\n   * Copyright 2021, Vladimir Kharlampidi\n   *\n   * Licensed under MIT\n   *\n   * Released on: December 13, 2021\n   */\n\n  /* eslint-disable no-param-reassign */\n\n  function isObject$1(obj) {\n    return obj !== null && _typeof(obj) === 'object' && 'constructor' in obj && obj.constructor === Object;\n  }\n\n  function extend$1(target, src) {\n    if (target === void 0) {\n      target = {};\n    }\n\n    if (src === void 0) {\n      src = {};\n    }\n\n    Object.keys(src).forEach(function (key) {\n      if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$1(src[key]) && isObject$1(target[key]) && Object.keys(src[key]).length > 0) {\n        extend$1(target[key], src[key]);\n      }\n    });\n  }\n\n  var ssrDocument = {\n    body: {},\n    addEventListener: function addEventListener() {},\n    removeEventListener: function removeEventListener() {},\n    activeElement: {\n      blur: function blur() {},\n      nodeName: ''\n    },\n    querySelector: function querySelector() {\n      return null;\n    },\n    querySelectorAll: function querySelectorAll() {\n      return [];\n    },\n    getElementById: function getElementById() {\n      return null;\n    },\n    createEvent: function createEvent() {\n      return {\n        initEvent: function initEvent() {}\n      };\n    },\n    createElement: function createElement() {\n      return {\n        children: [],\n        childNodes: [],\n        style: {},\n        setAttribute: function setAttribute() {},\n        getElementsByTagName: function getElementsByTagName() {\n          return [];\n        }\n      };\n    },\n    createElementNS: function createElementNS() {\n      return {};\n    },\n    importNode: function importNode() {\n      return null;\n    },\n    location: {\n      hash: '',\n      host: '',\n      hostname: '',\n      href: '',\n      origin: '',\n      pathname: '',\n      protocol: '',\n      search: ''\n    }\n  };\n\n  function getDocument() {\n    var doc = typeof document !== 'undefined' ? document : {};\n    extend$1(doc, ssrDocument);\n    return doc;\n  }\n\n  var ssrWindow = {\n    document: ssrDocument,\n    navigator: {\n      userAgent: ''\n    },\n    location: {\n      hash: '',\n      host: '',\n      hostname: '',\n      href: '',\n      origin: '',\n      pathname: '',\n      protocol: '',\n      search: ''\n    },\n    history: {\n      replaceState: function replaceState() {},\n      pushState: function pushState() {},\n      go: function go() {},\n      back: function back() {}\n    },\n    CustomEvent: function CustomEvent() {\n      return this;\n    },\n    addEventListener: function addEventListener() {},\n    removeEventListener: function removeEventListener() {},\n    getComputedStyle: function getComputedStyle() {\n      return {\n        getPropertyValue: function getPropertyValue() {\n          return '';\n        }\n      };\n    },\n    Image: function Image() {},\n    Date: function Date() {},\n    screen: {},\n    setTimeout: function setTimeout() {},\n    clearTimeout: function clearTimeout() {},\n    matchMedia: function matchMedia() {\n      return {};\n    },\n    requestAnimationFrame: function requestAnimationFrame(callback) {\n      if (typeof setTimeout === 'undefined') {\n        callback();\n        return null;\n      }\n\n      return setTimeout(callback, 0);\n    },\n    cancelAnimationFrame: function cancelAnimationFrame(id) {\n      if (typeof setTimeout === 'undefined') {\n        return;\n      }\n\n      clearTimeout(id);\n    }\n  };\n\n  function getWindow() {\n    var win = typeof window !== 'undefined' ? window : {};\n    extend$1(win, ssrWindow);\n    return win;\n  }\n  /**\n   * Dom7 4.0.4\n   * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n   * https://framework7.io/docs/dom7.html\n   *\n   * Copyright 2022, Vladimir Kharlampidi\n   *\n   * Licensed under MIT\n   *\n   * Released on: January 11, 2022\n   */\n\n  /* eslint-disable no-proto */\n\n\n  function makeReactive(obj) {\n    var proto = obj.__proto__;\n    Object.defineProperty(obj, '__proto__', {\n      get: function get() {\n        return proto;\n      },\n      set: function set(value) {\n        proto.__proto__ = value;\n      }\n    });\n  }\n\n  var Dom7 = /*#__PURE__*/function (_Array) {\n    _inherits(Dom7, _Array);\n\n    var _super = _createSuper(Dom7);\n\n    function Dom7(items) {\n      var _this;\n\n      _classCallCheck(this, Dom7);\n\n      if (typeof items === 'number') {\n        _this = _super.call(this, items);\n      } else {\n        _this = _super.call.apply(_super, [this].concat(_toConsumableArray(items || [])));\n        makeReactive(_assertThisInitialized(_this));\n      }\n\n      return _possibleConstructorReturn(_this);\n    }\n\n    return Dom7;\n  }( /*#__PURE__*/_wrapNativeSuper(Array));\n\n  function arrayFlat(arr) {\n    if (arr === void 0) {\n      arr = [];\n    }\n\n    var res = [];\n    arr.forEach(function (el) {\n      if (Array.isArray(el)) {\n        res.push.apply(res, _toConsumableArray(arrayFlat(el)));\n      } else {\n        res.push(el);\n      }\n    });\n    return res;\n  }\n\n  function arrayFilter(arr, callback) {\n    return Array.prototype.filter.call(arr, callback);\n  }\n\n  function arrayUnique(arr) {\n    var uniqueArray = [];\n\n    for (var i = 0; i < arr.length; i += 1) {\n      if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n    }\n\n    return uniqueArray;\n  }\n\n  function qsa(selector, context) {\n    if (typeof selector !== 'string') {\n      return [selector];\n    }\n\n    var a = [];\n    var res = context.querySelectorAll(selector);\n\n    for (var i = 0; i < res.length; i += 1) {\n      a.push(res[i]);\n    }\n\n    return a;\n  }\n\n  function $(selector, context) {\n    var window = getWindow();\n    var document = getDocument();\n    var arr = [];\n\n    if (!context && selector instanceof Dom7) {\n      return selector;\n    }\n\n    if (!selector) {\n      return new Dom7(arr);\n    }\n\n    if (typeof selector === 'string') {\n      var _html = selector.trim();\n\n      if (_html.indexOf('<') >= 0 && _html.indexOf('>') >= 0) {\n        var toCreate = 'div';\n        if (_html.indexOf('<li') === 0) toCreate = 'ul';\n        if (_html.indexOf('<tr') === 0) toCreate = 'tbody';\n        if (_html.indexOf('<td') === 0 || _html.indexOf('<th') === 0) toCreate = 'tr';\n        if (_html.indexOf('<tbody') === 0) toCreate = 'table';\n        if (_html.indexOf('<option') === 0) toCreate = 'select';\n        var tempParent = document.createElement(toCreate);\n        tempParent.innerHTML = _html;\n\n        for (var i = 0; i < tempParent.childNodes.length; i += 1) {\n          arr.push(tempParent.childNodes[i]);\n        }\n      } else {\n        arr = qsa(selector.trim(), context || document);\n      } // arr = qsa(selector, document);\n\n    } else if (selector.nodeType || selector === window || selector === document) {\n      arr.push(selector);\n    } else if (Array.isArray(selector)) {\n      if (selector instanceof Dom7) return selector;\n      arr = selector;\n    }\n\n    return new Dom7(arrayUnique(arr));\n  }\n\n  $.fn = Dom7.prototype; // eslint-disable-next-line\n\n  function addClass() {\n    for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {\n      classes[_key] = arguments[_key];\n    }\n\n    var classNames = arrayFlat(classes.map(function (c) {\n      return c.split(' ');\n    }));\n    this.forEach(function (el) {\n      var _el$classList;\n\n      (_el$classList = el.classList).add.apply(_el$classList, _toConsumableArray(classNames));\n    });\n    return this;\n  }\n\n  function removeClass() {\n    for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      classes[_key2] = arguments[_key2];\n    }\n\n    var classNames = arrayFlat(classes.map(function (c) {\n      return c.split(' ');\n    }));\n    this.forEach(function (el) {\n      var _el$classList2;\n\n      (_el$classList2 = el.classList).remove.apply(_el$classList2, _toConsumableArray(classNames));\n    });\n    return this;\n  }\n\n  function toggleClass() {\n    for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      classes[_key3] = arguments[_key3];\n    }\n\n    var classNames = arrayFlat(classes.map(function (c) {\n      return c.split(' ');\n    }));\n    this.forEach(function (el) {\n      classNames.forEach(function (className) {\n        el.classList.toggle(className);\n      });\n    });\n  }\n\n  function hasClass() {\n    for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      classes[_key4] = arguments[_key4];\n    }\n\n    var classNames = arrayFlat(classes.map(function (c) {\n      return c.split(' ');\n    }));\n    return arrayFilter(this, function (el) {\n      return classNames.filter(function (className) {\n        return el.classList.contains(className);\n      }).length > 0;\n    }).length > 0;\n  }\n\n  function attr(attrs, value) {\n    if (arguments.length === 1 && typeof attrs === 'string') {\n      // Get attr\n      if (this[0]) return this[0].getAttribute(attrs);\n      return undefined;\n    } // Set attrs\n\n\n    for (var i = 0; i < this.length; i += 1) {\n      if (arguments.length === 2) {\n        // String\n        this[i].setAttribute(attrs, value);\n      } else {\n        // Object\n        for (var attrName in attrs) {\n          this[i][attrName] = attrs[attrName];\n          this[i].setAttribute(attrName, attrs[attrName]);\n        }\n      }\n    }\n\n    return this;\n  }\n\n  function removeAttr(attr) {\n    for (var i = 0; i < this.length; i += 1) {\n      this[i].removeAttribute(attr);\n    }\n\n    return this;\n  }\n\n  function transform(transform) {\n    for (var i = 0; i < this.length; i += 1) {\n      this[i].style.transform = transform;\n    }\n\n    return this;\n  }\n\n  function transition$1(duration) {\n    for (var i = 0; i < this.length; i += 1) {\n      this[i].style.transitionDuration = typeof duration !== 'string' ? \"\".concat(duration, \"ms\") : duration;\n    }\n\n    return this;\n  }\n\n  function on() {\n    for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n      args[_key5] = arguments[_key5];\n    }\n\n    var eventType = args[0],\n        targetSelector = args[1],\n        listener = args[2],\n        capture = args[3];\n\n    if (typeof args[1] === 'function') {\n      eventType = args[0];\n      listener = args[1];\n      capture = args[2];\n      targetSelector = undefined;\n    }\n\n    if (!capture) capture = false;\n\n    function handleLiveEvent(e) {\n      var target = e.target;\n      if (!target) return;\n      var eventData = e.target.dom7EventData || [];\n\n      if (eventData.indexOf(e) < 0) {\n        eventData.unshift(e);\n      }\n\n      if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n        var _parents = $(target).parents(); // eslint-disable-line\n\n\n        for (var k = 0; k < _parents.length; k += 1) {\n          if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n        }\n      }\n    }\n\n    function handleEvent(e) {\n      var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n      if (eventData.indexOf(e) < 0) {\n        eventData.unshift(e);\n      }\n\n      listener.apply(this, eventData);\n    }\n\n    var events = eventType.split(' ');\n    var j;\n\n    for (var i = 0; i < this.length; i += 1) {\n      var el = this[i];\n\n      if (!targetSelector) {\n        for (j = 0; j < events.length; j += 1) {\n          var _event = events[j];\n          if (!el.dom7Listeners) el.dom7Listeners = {};\n          if (!el.dom7Listeners[_event]) el.dom7Listeners[_event] = [];\n\n          el.dom7Listeners[_event].push({\n            listener: listener,\n            proxyListener: handleEvent\n          });\n\n          el.addEventListener(_event, handleEvent, capture);\n        }\n      } else {\n        // Live events\n        for (j = 0; j < events.length; j += 1) {\n          var _event2 = events[j];\n          if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n          if (!el.dom7LiveListeners[_event2]) el.dom7LiveListeners[_event2] = [];\n\n          el.dom7LiveListeners[_event2].push({\n            listener: listener,\n            proxyListener: handleLiveEvent\n          });\n\n          el.addEventListener(_event2, handleLiveEvent, capture);\n        }\n      }\n    }\n\n    return this;\n  }\n\n  function off() {\n    for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n      args[_key6] = arguments[_key6];\n    }\n\n    var eventType = args[0],\n        targetSelector = args[1],\n        listener = args[2],\n        capture = args[3];\n\n    if (typeof args[1] === 'function') {\n      eventType = args[0];\n      listener = args[1];\n      capture = args[2];\n      targetSelector = undefined;\n    }\n\n    if (!capture) capture = false;\n    var events = eventType.split(' ');\n\n    for (var i = 0; i < events.length; i += 1) {\n      var _event3 = events[i];\n\n      for (var j = 0; j < this.length; j += 1) {\n        var el = this[j];\n        var handlers = void 0;\n\n        if (!targetSelector && el.dom7Listeners) {\n          handlers = el.dom7Listeners[_event3];\n        } else if (targetSelector && el.dom7LiveListeners) {\n          handlers = el.dom7LiveListeners[_event3];\n        }\n\n        if (handlers && handlers.length) {\n          for (var k = handlers.length - 1; k >= 0; k -= 1) {\n            var handler = handlers[k];\n\n            if (listener && handler.listener === listener) {\n              el.removeEventListener(_event3, handler.proxyListener, capture);\n              handlers.splice(k, 1);\n            } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n              el.removeEventListener(_event3, handler.proxyListener, capture);\n              handlers.splice(k, 1);\n            } else if (!listener) {\n              el.removeEventListener(_event3, handler.proxyListener, capture);\n              handlers.splice(k, 1);\n            }\n          }\n        }\n      }\n    }\n\n    return this;\n  }\n\n  function trigger() {\n    var window = getWindow();\n\n    for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n      args[_key9] = arguments[_key9];\n    }\n\n    var events = args[0].split(' ');\n    var eventData = args[1];\n\n    for (var i = 0; i < events.length; i += 1) {\n      var _event4 = events[i];\n\n      for (var j = 0; j < this.length; j += 1) {\n        var el = this[j];\n\n        if (window.CustomEvent) {\n          var evt = new window.CustomEvent(_event4, {\n            detail: eventData,\n            bubbles: true,\n            cancelable: true\n          });\n          el.dom7EventData = args.filter(function (data, dataIndex) {\n            return dataIndex > 0;\n          });\n          el.dispatchEvent(evt);\n          el.dom7EventData = [];\n          delete el.dom7EventData;\n        }\n      }\n    }\n\n    return this;\n  }\n\n  function transitionEnd$1(callback) {\n    var dom = this;\n\n    function fireCallBack(e) {\n      if (e.target !== this) return;\n      callback.call(this, e);\n      dom.off('transitionend', fireCallBack);\n    }\n\n    if (callback) {\n      dom.on('transitionend', fireCallBack);\n    }\n\n    return this;\n  }\n\n  function outerWidth(includeMargins) {\n    if (this.length > 0) {\n      if (includeMargins) {\n        var _styles = this.styles();\n\n        return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n      }\n\n      return this[0].offsetWidth;\n    }\n\n    return null;\n  }\n\n  function outerHeight(includeMargins) {\n    if (this.length > 0) {\n      if (includeMargins) {\n        var _styles2 = this.styles();\n\n        return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n      }\n\n      return this[0].offsetHeight;\n    }\n\n    return null;\n  }\n\n  function offset() {\n    if (this.length > 0) {\n      var _window = getWindow();\n\n      var _document = getDocument();\n\n      var el = this[0];\n      var box = el.getBoundingClientRect();\n      var body = _document.body;\n      var clientTop = el.clientTop || body.clientTop || 0;\n      var clientLeft = el.clientLeft || body.clientLeft || 0;\n      var scrollTop = el === _window ? _window.scrollY : el.scrollTop;\n      var scrollLeft = el === _window ? _window.scrollX : el.scrollLeft;\n      return {\n        top: box.top + scrollTop - clientTop,\n        left: box.left + scrollLeft - clientLeft\n      };\n    }\n\n    return null;\n  }\n\n  function styles() {\n    var window = getWindow();\n    if (this[0]) return window.getComputedStyle(this[0], null);\n    return {};\n  }\n\n  function css(props, value) {\n    var window = getWindow();\n    var i;\n\n    if (arguments.length === 1) {\n      if (typeof props === 'string') {\n        // .css('width')\n        if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n      } else {\n        // .css({ width: '100px' })\n        for (i = 0; i < this.length; i += 1) {\n          for (var prop in props) {\n            this[i].style[prop] = props[prop];\n          }\n        }\n\n        return this;\n      }\n    }\n\n    if (arguments.length === 2 && typeof props === 'string') {\n      // .css('width', '100px')\n      for (i = 0; i < this.length; i += 1) {\n        this[i].style[props] = value;\n      }\n\n      return this;\n    }\n\n    return this;\n  }\n\n  function each(callback) {\n    if (!callback) return this;\n    this.forEach(function (el, index) {\n      callback.apply(el, [el, index]);\n    });\n    return this;\n  }\n\n  function filter(callback) {\n    var result = arrayFilter(this, callback);\n    return $(result);\n  }\n\n  function html(html) {\n    if (typeof html === 'undefined') {\n      return this[0] ? this[0].innerHTML : null;\n    }\n\n    for (var i = 0; i < this.length; i += 1) {\n      this[i].innerHTML = html;\n    }\n\n    return this;\n  }\n\n  function text(text) {\n    if (typeof text === 'undefined') {\n      return this[0] ? this[0].textContent.trim() : null;\n    }\n\n    for (var i = 0; i < this.length; i += 1) {\n      this[i].textContent = text;\n    }\n\n    return this;\n  }\n\n  function is(selector) {\n    var window = getWindow();\n    var document = getDocument();\n    var el = this[0];\n    var compareWith;\n    var i;\n    if (!el || typeof selector === 'undefined') return false;\n\n    if (typeof selector === 'string') {\n      if (el.matches) return el.matches(selector);\n      if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n      if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n      compareWith = $(selector);\n\n      for (i = 0; i < compareWith.length; i += 1) {\n        if (compareWith[i] === el) return true;\n      }\n\n      return false;\n    }\n\n    if (selector === document) {\n      return el === document;\n    }\n\n    if (selector === window) {\n      return el === window;\n    }\n\n    if (selector.nodeType || selector instanceof Dom7) {\n      compareWith = selector.nodeType ? [selector] : selector;\n\n      for (i = 0; i < compareWith.length; i += 1) {\n        if (compareWith[i] === el) return true;\n      }\n\n      return false;\n    }\n\n    return false;\n  }\n\n  function index() {\n    var child = this[0];\n    var i;\n\n    if (child) {\n      i = 0; // eslint-disable-next-line\n\n      while ((child = child.previousSibling) !== null) {\n        if (child.nodeType === 1) i += 1;\n      }\n\n      return i;\n    }\n\n    return undefined;\n  }\n\n  function eq(index) {\n    if (typeof index === 'undefined') return this;\n    var length = this.length;\n\n    if (index > length - 1) {\n      return $([]);\n    }\n\n    if (index < 0) {\n      var returnIndex = length + index;\n      if (returnIndex < 0) return $([]);\n      return $([this[returnIndex]]);\n    }\n\n    return $([this[index]]);\n  }\n\n  function append() {\n    var newChild;\n    var document = getDocument();\n\n    for (var k = 0; k < arguments.length; k += 1) {\n      newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n      for (var i = 0; i < this.length; i += 1) {\n        if (typeof newChild === 'string') {\n          var tempDiv = document.createElement('div');\n          tempDiv.innerHTML = newChild;\n\n          while (tempDiv.firstChild) {\n            this[i].appendChild(tempDiv.firstChild);\n          }\n        } else if (newChild instanceof Dom7) {\n          for (var j = 0; j < newChild.length; j += 1) {\n            this[i].appendChild(newChild[j]);\n          }\n        } else {\n          this[i].appendChild(newChild);\n        }\n      }\n    }\n\n    return this;\n  }\n\n  function prepend(newChild) {\n    var document = getDocument();\n    var i;\n    var j;\n\n    for (i = 0; i < this.length; i += 1) {\n      if (typeof newChild === 'string') {\n        var tempDiv = document.createElement('div');\n        tempDiv.innerHTML = newChild;\n\n        for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n          this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n        }\n      } else if (newChild instanceof Dom7) {\n        for (j = 0; j < newChild.length; j += 1) {\n          this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n        }\n      } else {\n        this[i].insertBefore(newChild, this[i].childNodes[0]);\n      }\n    }\n\n    return this;\n  }\n\n  function next(selector) {\n    if (this.length > 0) {\n      if (selector) {\n        if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n          return $([this[0].nextElementSibling]);\n        }\n\n        return $([]);\n      }\n\n      if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n      return $([]);\n    }\n\n    return $([]);\n  }\n\n  function nextAll(selector) {\n    var nextEls = [];\n    var el = this[0];\n    if (!el) return $([]);\n\n    while (el.nextElementSibling) {\n      var _next = el.nextElementSibling; // eslint-disable-line\n\n      if (selector) {\n        if ($(_next).is(selector)) nextEls.push(_next);\n      } else nextEls.push(_next);\n\n      el = _next;\n    }\n\n    return $(nextEls);\n  }\n\n  function prev(selector) {\n    if (this.length > 0) {\n      var el = this[0];\n\n      if (selector) {\n        if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n          return $([el.previousElementSibling]);\n        }\n\n        return $([]);\n      }\n\n      if (el.previousElementSibling) return $([el.previousElementSibling]);\n      return $([]);\n    }\n\n    return $([]);\n  }\n\n  function prevAll(selector) {\n    var prevEls = [];\n    var el = this[0];\n    if (!el) return $([]);\n\n    while (el.previousElementSibling) {\n      var _prev = el.previousElementSibling; // eslint-disable-line\n\n      if (selector) {\n        if ($(_prev).is(selector)) prevEls.push(_prev);\n      } else prevEls.push(_prev);\n\n      el = _prev;\n    }\n\n    return $(prevEls);\n  }\n\n  function parent(selector) {\n    var parents = []; // eslint-disable-line\n\n    for (var i = 0; i < this.length; i += 1) {\n      if (this[i].parentNode !== null) {\n        if (selector) {\n          if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n        } else {\n          parents.push(this[i].parentNode);\n        }\n      }\n    }\n\n    return $(parents);\n  }\n\n  function parents(selector) {\n    var parents = []; // eslint-disable-line\n\n    for (var i = 0; i < this.length; i += 1) {\n      var _parent = this[i].parentNode; // eslint-disable-line\n\n      while (_parent) {\n        if (selector) {\n          if ($(_parent).is(selector)) parents.push(_parent);\n        } else {\n          parents.push(_parent);\n        }\n\n        _parent = _parent.parentNode;\n      }\n    }\n\n    return $(parents);\n  }\n\n  function closest(selector) {\n    var closest = this; // eslint-disable-line\n\n    if (typeof selector === 'undefined') {\n      return $([]);\n    }\n\n    if (!closest.is(selector)) {\n      closest = closest.parents(selector).eq(0);\n    }\n\n    return closest;\n  }\n\n  function find(selector) {\n    var foundElements = [];\n\n    for (var i = 0; i < this.length; i += 1) {\n      var found = this[i].querySelectorAll(selector);\n\n      for (var j = 0; j < found.length; j += 1) {\n        foundElements.push(found[j]);\n      }\n    }\n\n    return $(foundElements);\n  }\n\n  function children(selector) {\n    var children = []; // eslint-disable-line\n\n    for (var i = 0; i < this.length; i += 1) {\n      var childNodes = this[i].children;\n\n      for (var j = 0; j < childNodes.length; j += 1) {\n        if (!selector || $(childNodes[j]).is(selector)) {\n          children.push(childNodes[j]);\n        }\n      }\n    }\n\n    return $(children);\n  }\n\n  function remove() {\n    for (var i = 0; i < this.length; i += 1) {\n      if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n    }\n\n    return this;\n  }\n\n  var Methods = {\n    addClass: addClass,\n    removeClass: removeClass,\n    hasClass: hasClass,\n    toggleClass: toggleClass,\n    attr: attr,\n    removeAttr: removeAttr,\n    transform: transform,\n    transition: transition$1,\n    on: on,\n    off: off,\n    trigger: trigger,\n    transitionEnd: transitionEnd$1,\n    outerWidth: outerWidth,\n    outerHeight: outerHeight,\n    styles: styles,\n    offset: offset,\n    css: css,\n    each: each,\n    html: html,\n    text: text,\n    is: is,\n    index: index,\n    eq: eq,\n    append: append,\n    prepend: prepend,\n    next: next,\n    nextAll: nextAll,\n    prev: prev,\n    prevAll: prevAll,\n    parent: parent,\n    parents: parents,\n    closest: closest,\n    find: find,\n    children: children,\n    filter: filter,\n    remove: remove\n  };\n  Object.keys(Methods).forEach(function (methodName) {\n    Object.defineProperty($.fn, methodName, {\n      value: Methods[methodName],\n      writable: true\n    });\n  });\n\n  function deleteProps(obj) {\n    var object = obj;\n    Object.keys(object).forEach(function (key) {\n      try {\n        object[key] = null;\n      } catch (e) {// no getter for object\n      }\n\n      try {\n        delete object[key];\n      } catch (e) {// something got wrong\n      }\n    });\n  }\n\n  function nextTick(callback, delay) {\n    if (delay === void 0) {\n      delay = 0;\n    }\n\n    return setTimeout(callback, delay);\n  }\n\n  function now() {\n    return Date.now();\n  }\n\n  function getComputedStyle$1(el) {\n    var window = getWindow();\n    var style;\n\n    if (window.getComputedStyle) {\n      style = window.getComputedStyle(el, null);\n    }\n\n    if (!style && el.currentStyle) {\n      style = el.currentStyle;\n    }\n\n    if (!style) {\n      style = el.style;\n    }\n\n    return style;\n  }\n\n  function getTranslate(el, axis) {\n    if (axis === void 0) {\n      axis = 'x';\n    }\n\n    var window = getWindow();\n    var matrix;\n    var curTransform;\n    var transformMatrix;\n    var curStyle = getComputedStyle$1(el);\n\n    if (window.WebKitCSSMatrix) {\n      curTransform = curStyle.transform || curStyle.webkitTransform;\n\n      if (curTransform.split(',').length > 6) {\n        curTransform = curTransform.split(', ').map(function (a) {\n          return a.replace(',', '.');\n        }).join(', ');\n      } // Some old versions of Webkit choke when 'none' is passed; pass\n      // empty string instead in this case\n\n\n      transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n    } else {\n      transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n      matrix = transformMatrix.toString().split(',');\n    }\n\n    if (axis === 'x') {\n      // Latest Chrome and webkits Fix\n      if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n      else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n        else curTransform = parseFloat(matrix[4]);\n    }\n\n    if (axis === 'y') {\n      // Latest Chrome and webkits Fix\n      if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n      else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n        else curTransform = parseFloat(matrix[5]);\n    }\n\n    return curTransform || 0;\n  }\n\n  function isObject(o) {\n    return _typeof(o) === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n  }\n\n  function isNode(node) {\n    // eslint-disable-next-line\n    if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n      return node instanceof HTMLElement;\n    }\n\n    return node && (node.nodeType === 1 || node.nodeType === 11);\n  }\n\n  function extend() {\n    var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n    var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n    for (var i = 1; i < arguments.length; i += 1) {\n      var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n      if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n        var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n          return noExtend.indexOf(key) < 0;\n        });\n\n        for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n          var nextKey = keysArray[nextIndex];\n          var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n          if (desc !== undefined && desc.enumerable) {\n            if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n              if (nextSource[nextKey].__swiper__) {\n                to[nextKey] = nextSource[nextKey];\n              } else {\n                extend(to[nextKey], nextSource[nextKey]);\n              }\n            } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n              to[nextKey] = {};\n\n              if (nextSource[nextKey].__swiper__) {\n                to[nextKey] = nextSource[nextKey];\n              } else {\n                extend(to[nextKey], nextSource[nextKey]);\n              }\n            } else {\n              to[nextKey] = nextSource[nextKey];\n            }\n          }\n        }\n      }\n    }\n\n    return to;\n  }\n\n  function setCSSProperty(el, varName, varValue) {\n    el.style.setProperty(varName, varValue);\n  }\n\n  function animateCSSModeScroll(_ref) {\n    var swiper = _ref.swiper,\n        targetPosition = _ref.targetPosition,\n        side = _ref.side;\n    var window = getWindow();\n    var startPosition = -swiper.translate;\n    var startTime = null;\n    var time;\n    var duration = swiper.params.speed;\n    swiper.wrapperEl.style.scrollSnapType = 'none';\n    window.cancelAnimationFrame(swiper.cssModeFrameID);\n    var dir = targetPosition > startPosition ? 'next' : 'prev';\n\n    var isOutOfBound = function isOutOfBound(current, target) {\n      return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n    };\n\n    var animate = function animate() {\n      time = new Date().getTime();\n\n      if (startTime === null) {\n        startTime = time;\n      }\n\n      var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n      var easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n      var currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n      if (isOutOfBound(currentPosition, targetPosition)) {\n        currentPosition = targetPosition;\n      }\n\n      swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n\n      if (isOutOfBound(currentPosition, targetPosition)) {\n        swiper.wrapperEl.style.overflow = 'hidden';\n        swiper.wrapperEl.style.scrollSnapType = '';\n        setTimeout(function () {\n          swiper.wrapperEl.style.overflow = '';\n          swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n        });\n        window.cancelAnimationFrame(swiper.cssModeFrameID);\n        return;\n      }\n\n      swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n    };\n\n    animate();\n  }\n\n  var support;\n\n  function calcSupport() {\n    var window = getWindow();\n    var document = getDocument();\n    return {\n      smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n      touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n      passiveListener: function checkPassiveListener() {\n        var supportsPassive = false;\n\n        try {\n          var opts = Object.defineProperty({}, 'passive', {\n            // eslint-disable-next-line\n            get: function get() {\n              supportsPassive = true;\n            }\n          });\n          window.addEventListener('testPassiveListener', null, opts);\n        } catch (e) {// No support\n        }\n\n        return supportsPassive;\n      }(),\n      gestures: function checkGestures() {\n        return 'ongesturestart' in window;\n      }()\n    };\n  }\n\n  function getSupport() {\n    if (!support) {\n      support = calcSupport();\n    }\n\n    return support;\n  }\n\n  var deviceCached;\n\n  function calcDevice(_temp) {\n    var _ref3 = _temp === void 0 ? {} : _temp,\n        userAgent = _ref3.userAgent;\n\n    var support = getSupport();\n    var window = getWindow();\n    var platform = window.navigator.platform;\n    var ua = userAgent || window.navigator.userAgent;\n    var device = {\n      ios: false,\n      android: false\n    };\n    var screenWidth = window.screen.width;\n    var screenHeight = window.screen.height;\n    var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n    var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n    var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n    var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n    var windows = platform === 'Win32';\n    var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n    var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n    if (!ipad && macos && support.touch && iPadScreens.indexOf(\"\".concat(screenWidth, \"x\").concat(screenHeight)) >= 0) {\n      ipad = ua.match(/(Version)\\/([\\d.]+)/);\n      if (!ipad) ipad = [0, 1, '13_0_0'];\n      macos = false;\n    } // Android\n\n\n    if (android && !windows) {\n      device.os = 'android';\n      device.android = true;\n    }\n\n    if (ipad || iphone || ipod) {\n      device.os = 'ios';\n      device.ios = true;\n    } // Export object\n\n\n    return device;\n  }\n\n  function getDevice(overrides) {\n    if (overrides === void 0) {\n      overrides = {};\n    }\n\n    if (!deviceCached) {\n      deviceCached = calcDevice(overrides);\n    }\n\n    return deviceCached;\n  }\n\n  var browser;\n\n  function calcBrowser() {\n    var window = getWindow();\n\n    function isSafari() {\n      var ua = window.navigator.userAgent.toLowerCase();\n      return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n    }\n\n    return {\n      isSafari: isSafari(),\n      isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n    };\n  }\n\n  function getBrowser() {\n    if (!browser) {\n      browser = calcBrowser();\n    }\n\n    return browser;\n  }\n\n  function Resize(_ref) {\n    var swiper = _ref.swiper,\n        on = _ref.on,\n        emit = _ref.emit;\n    var window = getWindow();\n    var observer = null;\n    var animationFrame = null;\n\n    var resizeHandler = function resizeHandler() {\n      if (!swiper || swiper.destroyed || !swiper.initialized) return;\n      emit('beforeResize');\n      emit('resize');\n    };\n\n    var createObserver = function createObserver() {\n      if (!swiper || swiper.destroyed || !swiper.initialized) return;\n      observer = new ResizeObserver(function (entries) {\n        animationFrame = window.requestAnimationFrame(function () {\n          var width = swiper.width,\n              height = swiper.height;\n          var newWidth = width;\n          var newHeight = height;\n          entries.forEach(function (_ref2) {\n            var contentBoxSize = _ref2.contentBoxSize,\n                contentRect = _ref2.contentRect,\n                target = _ref2.target;\n            if (target && target !== swiper.el) return;\n            newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n            newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n          });\n\n          if (newWidth !== width || newHeight !== height) {\n            resizeHandler();\n          }\n        });\n      });\n      observer.observe(swiper.el);\n    };\n\n    var removeObserver = function removeObserver() {\n      if (animationFrame) {\n        window.cancelAnimationFrame(animationFrame);\n      }\n\n      if (observer && observer.unobserve && swiper.el) {\n        observer.unobserve(swiper.el);\n        observer = null;\n      }\n    };\n\n    var orientationChangeHandler = function orientationChangeHandler() {\n      if (!swiper || swiper.destroyed || !swiper.initialized) return;\n      emit('orientationchange');\n    };\n\n    on('init', function () {\n      if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n        createObserver();\n        return;\n      }\n\n      window.addEventListener('resize', resizeHandler);\n      window.addEventListener('orientationchange', orientationChangeHandler);\n    });\n    on('destroy', function () {\n      removeObserver();\n      window.removeEventListener('resize', resizeHandler);\n      window.removeEventListener('orientationchange', orientationChangeHandler);\n    });\n  }\n\n  function Observer(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    var observers = [];\n    var window = getWindow();\n\n    var attach = function attach(target, options) {\n      if (options === void 0) {\n        options = {};\n      }\n\n      var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n      var observer = new ObserverFunc(function (mutations) {\n        // The observerUpdate event should only be triggered\n        // once despite the number of mutations.  Additional\n        // triggers are redundant and are very costly\n        if (mutations.length === 1) {\n          emit('observerUpdate', mutations[0]);\n          return;\n        }\n\n        var observerUpdate = function observerUpdate() {\n          emit('observerUpdate', mutations[0]);\n        };\n\n        if (window.requestAnimationFrame) {\n          window.requestAnimationFrame(observerUpdate);\n        } else {\n          window.setTimeout(observerUpdate, 0);\n        }\n      });\n      observer.observe(target, {\n        attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n        childList: typeof options.childList === 'undefined' ? true : options.childList,\n        characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n      });\n      observers.push(observer);\n    };\n\n    var init = function init() {\n      if (!swiper.params.observer) return;\n\n      if (swiper.params.observeParents) {\n        var containerParents = swiper.$el.parents();\n\n        for (var i = 0; i < containerParents.length; i += 1) {\n          attach(containerParents[i]);\n        }\n      } // Observe container\n\n\n      attach(swiper.$el[0], {\n        childList: swiper.params.observeSlideChildren\n      }); // Observe wrapper\n\n      attach(swiper.$wrapperEl[0], {\n        attributes: false\n      });\n    };\n\n    var destroy = function destroy() {\n      observers.forEach(function (observer) {\n        observer.disconnect();\n      });\n      observers.splice(0, observers.length);\n    };\n\n    extendParams({\n      observer: false,\n      observeParents: false,\n      observeSlideChildren: false\n    });\n    on('init', init);\n    on('destroy', destroy);\n  }\n  /* eslint-disable no-underscore-dangle */\n\n\n  var eventsEmitter = {\n    on: function on(events, handler, priority) {\n      var self = this;\n      if (!self.eventsListeners || self.destroyed) return self;\n      if (typeof handler !== 'function') return self;\n      var method = priority ? 'unshift' : 'push';\n      events.split(' ').forEach(function (event) {\n        if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n        self.eventsListeners[event][method](handler);\n      });\n      return self;\n    },\n    once: function once(events, handler, priority) {\n      var self = this;\n      if (!self.eventsListeners || self.destroyed) return self;\n      if (typeof handler !== 'function') return self;\n\n      function onceHandler() {\n        self.off(events, onceHandler);\n\n        if (onceHandler.__emitterProxy) {\n          delete onceHandler.__emitterProxy;\n        }\n\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n\n        handler.apply(self, args);\n      }\n\n      onceHandler.__emitterProxy = handler;\n      return self.on(events, onceHandler, priority);\n    },\n    onAny: function onAny(handler, priority) {\n      var self = this;\n      if (!self.eventsListeners || self.destroyed) return self;\n      if (typeof handler !== 'function') return self;\n      var method = priority ? 'unshift' : 'push';\n\n      if (self.eventsAnyListeners.indexOf(handler) < 0) {\n        self.eventsAnyListeners[method](handler);\n      }\n\n      return self;\n    },\n    offAny: function offAny(handler) {\n      var self = this;\n      if (!self.eventsListeners || self.destroyed) return self;\n      if (!self.eventsAnyListeners) return self;\n      var index = self.eventsAnyListeners.indexOf(handler);\n\n      if (index >= 0) {\n        self.eventsAnyListeners.splice(index, 1);\n      }\n\n      return self;\n    },\n    off: function off(events, handler) {\n      var self = this;\n      if (!self.eventsListeners || self.destroyed) return self;\n      if (!self.eventsListeners) return self;\n      events.split(' ').forEach(function (event) {\n        if (typeof handler === 'undefined') {\n          self.eventsListeners[event] = [];\n        } else if (self.eventsListeners[event]) {\n          self.eventsListeners[event].forEach(function (eventHandler, index) {\n            if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n              self.eventsListeners[event].splice(index, 1);\n            }\n          });\n        }\n      });\n      return self;\n    },\n    emit: function emit() {\n      var self = this;\n      if (!self.eventsListeners || self.destroyed) return self;\n      if (!self.eventsListeners) return self;\n      var events;\n      var data;\n      var context;\n\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n        events = args[0];\n        data = args.slice(1, args.length);\n        context = self;\n      } else {\n        events = args[0].events;\n        data = args[0].data;\n        context = args[0].context || self;\n      }\n\n      data.unshift(context);\n      var eventsArray = Array.isArray(events) ? events : events.split(' ');\n      eventsArray.forEach(function (event) {\n        if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n          self.eventsAnyListeners.forEach(function (eventHandler) {\n            eventHandler.apply(context, [event].concat(_toConsumableArray(data)));\n          });\n        }\n\n        if (self.eventsListeners && self.eventsListeners[event]) {\n          self.eventsListeners[event].forEach(function (eventHandler) {\n            eventHandler.apply(context, data);\n          });\n        }\n      });\n      return self;\n    }\n  };\n\n  function updateSize() {\n    var swiper = this;\n    var width;\n    var height;\n    var $el = swiper.$el;\n\n    if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n      width = swiper.params.width;\n    } else {\n      width = $el[0].clientWidth;\n    }\n\n    if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n      height = swiper.params.height;\n    } else {\n      height = $el[0].clientHeight;\n    }\n\n    if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n      return;\n    } // Subtract paddings\n\n\n    width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n    height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n    if (Number.isNaN(width)) width = 0;\n    if (Number.isNaN(height)) height = 0;\n    Object.assign(swiper, {\n      width: width,\n      height: height,\n      size: swiper.isHorizontal() ? width : height\n    });\n  }\n\n  function updateSlides() {\n    var swiper = this;\n\n    function getDirectionLabel(property) {\n      if (swiper.isHorizontal()) {\n        return property;\n      } // prettier-ignore\n\n\n      return {\n        'width': 'height',\n        'margin-top': 'margin-left',\n        'margin-bottom ': 'margin-right',\n        'margin-left': 'margin-top',\n        'margin-right': 'margin-bottom',\n        'padding-left': 'padding-top',\n        'padding-right': 'padding-bottom',\n        'marginRight': 'marginBottom'\n      }[property];\n    }\n\n    function getDirectionPropertyValue(node, label) {\n      return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n    }\n\n    var params = swiper.params;\n    var $wrapperEl = swiper.$wrapperEl,\n        swiperSize = swiper.size,\n        rtl = swiper.rtlTranslate,\n        wrongRTL = swiper.wrongRTL;\n    var isVirtual = swiper.virtual && params.virtual.enabled;\n    var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n    var slides = $wrapperEl.children(\".\".concat(swiper.params.slideClass));\n    var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n    var snapGrid = [];\n    var slidesGrid = [];\n    var slidesSizesGrid = [];\n    var offsetBefore = params.slidesOffsetBefore;\n\n    if (typeof offsetBefore === 'function') {\n      offsetBefore = params.slidesOffsetBefore.call(swiper);\n    }\n\n    var offsetAfter = params.slidesOffsetAfter;\n\n    if (typeof offsetAfter === 'function') {\n      offsetAfter = params.slidesOffsetAfter.call(swiper);\n    }\n\n    var previousSnapGridLength = swiper.snapGrid.length;\n    var previousSlidesGridLength = swiper.slidesGrid.length;\n    var spaceBetween = params.spaceBetween;\n    var slidePosition = -offsetBefore;\n    var prevSlideSize = 0;\n    var index = 0;\n\n    if (typeof swiperSize === 'undefined') {\n      return;\n    }\n\n    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n    }\n\n    swiper.virtualSize = -spaceBetween; // reset margins\n\n    if (rtl) slides.css({\n      marginLeft: '',\n      marginBottom: '',\n      marginTop: ''\n    });else slides.css({\n      marginRight: '',\n      marginBottom: '',\n      marginTop: ''\n    }); // reset cssMode offsets\n\n    if (params.centeredSlides && params.cssMode) {\n      setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n      setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n    }\n\n    var gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n    if (gridEnabled) {\n      swiper.grid.initSlides(slidesLength);\n    } // Calc slides\n\n\n    var slideSize;\n    var shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(function (key) {\n      return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n    }).length > 0;\n\n    for (var i = 0; i < slidesLength; i += 1) {\n      slideSize = 0;\n\n      var _slide = slides.eq(i);\n\n      if (gridEnabled) {\n        swiper.grid.updateSlide(i, _slide, slidesLength, getDirectionLabel);\n      }\n\n      if (_slide.css('display') === 'none') continue; // eslint-disable-line\n\n      if (params.slidesPerView === 'auto') {\n        if (shouldResetSlideSize) {\n          slides[i].style[getDirectionLabel('width')] = \"\";\n        }\n\n        var slideStyles = getComputedStyle(_slide[0]);\n        var currentTransform = _slide[0].style.transform;\n        var currentWebKitTransform = _slide[0].style.webkitTransform;\n\n        if (currentTransform) {\n          _slide[0].style.transform = 'none';\n        }\n\n        if (currentWebKitTransform) {\n          _slide[0].style.webkitTransform = 'none';\n        }\n\n        if (params.roundLengths) {\n          slideSize = swiper.isHorizontal() ? _slide.outerWidth(true) : _slide.outerHeight(true);\n        } else {\n          // eslint-disable-next-line\n          var width = getDirectionPropertyValue(slideStyles, 'width');\n          var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n          var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n          var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n          var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n          var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n          if (boxSizing && boxSizing === 'border-box') {\n            slideSize = width + marginLeft + marginRight;\n          } else {\n            var _slide$ = _slide[0],\n                clientWidth = _slide$.clientWidth,\n                offsetWidth = _slide$.offsetWidth;\n            slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n          }\n        }\n\n        if (currentTransform) {\n          _slide[0].style.transform = currentTransform;\n        }\n\n        if (currentWebKitTransform) {\n          _slide[0].style.webkitTransform = currentWebKitTransform;\n        }\n\n        if (params.roundLengths) slideSize = Math.floor(slideSize);\n      } else {\n        slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n        if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n        if (slides[i]) {\n          slides[i].style[getDirectionLabel('width')] = \"\".concat(slideSize, \"px\");\n        }\n      }\n\n      if (slides[i]) {\n        slides[i].swiperSlideSize = slideSize;\n      }\n\n      slidesSizesGrid.push(slideSize);\n\n      if (params.centeredSlides) {\n        slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n        if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n        if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n        if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n        if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n        if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n        slidesGrid.push(slidePosition);\n      } else {\n        if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n        if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n        slidesGrid.push(slidePosition);\n        slidePosition = slidePosition + slideSize + spaceBetween;\n      }\n\n      swiper.virtualSize += slideSize + spaceBetween;\n      prevSlideSize = slideSize;\n      index += 1;\n    }\n\n    swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n    if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n      $wrapperEl.css({\n        width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n      });\n    }\n\n    if (params.setWrapperSize) {\n      $wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")));\n    }\n\n    if (gridEnabled) {\n      swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n    } // Remove last grid elements depending on width\n\n\n    if (!params.centeredSlides) {\n      var newSlidesGrid = [];\n\n      for (var _i = 0; _i < snapGrid.length; _i += 1) {\n        var slidesGridItem = snapGrid[_i];\n        if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n        if (snapGrid[_i] <= swiper.virtualSize - swiperSize) {\n          newSlidesGrid.push(slidesGridItem);\n        }\n      }\n\n      snapGrid = newSlidesGrid;\n\n      if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n        snapGrid.push(swiper.virtualSize - swiperSize);\n      }\n    }\n\n    if (snapGrid.length === 0) snapGrid = [0];\n\n    if (params.spaceBetween !== 0) {\n      var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n      slides.filter(function (_, slideIndex) {\n        if (!params.cssMode) return true;\n\n        if (slideIndex === slides.length - 1) {\n          return false;\n        }\n\n        return true;\n      }).css(_defineProperty({}, key, \"\".concat(spaceBetween, \"px\")));\n    }\n\n    if (params.centeredSlides && params.centeredSlidesBounds) {\n      var allSlidesSize = 0;\n      slidesSizesGrid.forEach(function (slideSizeValue) {\n        allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n      });\n      allSlidesSize -= params.spaceBetween;\n      var maxSnap = allSlidesSize - swiperSize;\n      snapGrid = snapGrid.map(function (snap) {\n        if (snap < 0) return -offsetBefore;\n        if (snap > maxSnap) return maxSnap + offsetAfter;\n        return snap;\n      });\n    }\n\n    if (params.centerInsufficientSlides) {\n      var _allSlidesSize = 0;\n      slidesSizesGrid.forEach(function (slideSizeValue) {\n        _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n      });\n      _allSlidesSize -= params.spaceBetween;\n\n      if (_allSlidesSize < swiperSize) {\n        var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n        snapGrid.forEach(function (snap, snapIndex) {\n          snapGrid[snapIndex] = snap - allSlidesOffset;\n        });\n        slidesGrid.forEach(function (snap, snapIndex) {\n          slidesGrid[snapIndex] = snap + allSlidesOffset;\n        });\n      }\n    }\n\n    Object.assign(swiper, {\n      slides: slides,\n      snapGrid: snapGrid,\n      slidesGrid: slidesGrid,\n      slidesSizesGrid: slidesSizesGrid\n    });\n\n    if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n      setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', \"\".concat(-snapGrid[0], \"px\"));\n      setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', \"\".concat(swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2, \"px\"));\n      var addToSnapGrid = -swiper.snapGrid[0];\n      var addToSlidesGrid = -swiper.slidesGrid[0];\n      swiper.snapGrid = swiper.snapGrid.map(function (v) {\n        return v + addToSnapGrid;\n      });\n      swiper.slidesGrid = swiper.slidesGrid.map(function (v) {\n        return v + addToSlidesGrid;\n      });\n    }\n\n    if (slidesLength !== previousSlidesLength) {\n      swiper.emit('slidesLengthChange');\n    }\n\n    if (snapGrid.length !== previousSnapGridLength) {\n      if (swiper.params.watchOverflow) swiper.checkOverflow();\n      swiper.emit('snapGridLengthChange');\n    }\n\n    if (slidesGrid.length !== previousSlidesGridLength) {\n      swiper.emit('slidesGridLengthChange');\n    }\n\n    if (params.watchSlidesProgress) {\n      swiper.updateSlidesOffset();\n    }\n\n    if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n      var backFaceHiddenClass = \"\".concat(params.containerModifierClass, \"backface-hidden\");\n      var hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n      if (slidesLength <= params.maxBackfaceHiddenSlides) {\n        if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n      } else if (hasClassBackfaceClassAdded) {\n        swiper.$el.removeClass(backFaceHiddenClass);\n      }\n    }\n  }\n\n  function updateAutoHeight(speed) {\n    var swiper = this;\n    var activeSlides = [];\n    var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n    var newHeight = 0;\n    var i;\n\n    if (typeof speed === 'number') {\n      swiper.setTransition(speed);\n    } else if (speed === true) {\n      swiper.setTransition(swiper.params.speed);\n    }\n\n    var getSlideByIndex = function getSlideByIndex(index) {\n      if (isVirtual) {\n        return swiper.slides.filter(function (el) {\n          return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n        })[0];\n      }\n\n      return swiper.slides.eq(index)[0];\n    }; // Find slides currently in view\n\n\n    if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n      if (swiper.params.centeredSlides) {\n        (swiper.visibleSlides || $([])).each(function (slide) {\n          activeSlides.push(slide);\n        });\n      } else {\n        for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n          var _index = swiper.activeIndex + i;\n\n          if (_index > swiper.slides.length && !isVirtual) break;\n          activeSlides.push(getSlideByIndex(_index));\n        }\n      }\n    } else {\n      activeSlides.push(getSlideByIndex(swiper.activeIndex));\n    } // Find new height from highest slide in view\n\n\n    for (i = 0; i < activeSlides.length; i += 1) {\n      if (typeof activeSlides[i] !== 'undefined') {\n        var height = activeSlides[i].offsetHeight;\n        newHeight = height > newHeight ? height : newHeight;\n      }\n    } // Update Height\n\n\n    if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', \"\".concat(newHeight, \"px\"));\n  }\n\n  function updateSlidesOffset() {\n    var swiper = this;\n    var slides = swiper.slides;\n\n    for (var i = 0; i < slides.length; i += 1) {\n      slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n    }\n  }\n\n  function updateSlidesProgress(translate) {\n    if (translate === void 0) {\n      translate = this && this.translate || 0;\n    }\n\n    var swiper = this;\n    var params = swiper.params;\n    var slides = swiper.slides,\n        rtl = swiper.rtlTranslate,\n        snapGrid = swiper.snapGrid;\n    if (slides.length === 0) return;\n    if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n    var offsetCenter = -translate;\n    if (rtl) offsetCenter = translate; // Visible Slides\n\n    slides.removeClass(params.slideVisibleClass);\n    swiper.visibleSlidesIndexes = [];\n    swiper.visibleSlides = [];\n\n    for (var i = 0; i < slides.length; i += 1) {\n      var _slide2 = slides[i];\n      var slideOffset = _slide2.swiperSlideOffset;\n\n      if (params.cssMode && params.centeredSlides) {\n        slideOffset -= slides[0].swiperSlideOffset;\n      }\n\n      var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (_slide2.swiperSlideSize + params.spaceBetween);\n      var originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (_slide2.swiperSlideSize + params.spaceBetween);\n      var slideBefore = -(offsetCenter - slideOffset);\n      var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n      var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n      if (isVisible) {\n        swiper.visibleSlides.push(_slide2);\n        swiper.visibleSlidesIndexes.push(i);\n        slides.eq(i).addClass(params.slideVisibleClass);\n      }\n\n      _slide2.progress = rtl ? -slideProgress : slideProgress;\n      _slide2.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n    }\n\n    swiper.visibleSlides = $(swiper.visibleSlides);\n  }\n\n  function updateProgress(translate) {\n    var swiper = this;\n\n    if (typeof translate === 'undefined') {\n      var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n      translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n    }\n\n    var params = swiper.params;\n    var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n    var progress = swiper.progress,\n        isBeginning = swiper.isBeginning,\n        isEnd = swiper.isEnd;\n    var wasBeginning = isBeginning;\n    var wasEnd = isEnd;\n\n    if (translatesDiff === 0) {\n      progress = 0;\n      isBeginning = true;\n      isEnd = true;\n    } else {\n      progress = (translate - swiper.minTranslate()) / translatesDiff;\n      isBeginning = progress <= 0;\n      isEnd = progress >= 1;\n    }\n\n    Object.assign(swiper, {\n      progress: progress,\n      isBeginning: isBeginning,\n      isEnd: isEnd\n    });\n    if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n    if (isBeginning && !wasBeginning) {\n      swiper.emit('reachBeginning toEdge');\n    }\n\n    if (isEnd && !wasEnd) {\n      swiper.emit('reachEnd toEdge');\n    }\n\n    if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n      swiper.emit('fromEdge');\n    }\n\n    swiper.emit('progress', progress);\n  }\n\n  function updateSlidesClasses() {\n    var swiper = this;\n    var slides = swiper.slides,\n        params = swiper.params,\n        $wrapperEl = swiper.$wrapperEl,\n        activeIndex = swiper.activeIndex,\n        realIndex = swiper.realIndex;\n    var isVirtual = swiper.virtual && params.virtual.enabled;\n    slides.removeClass(\"\".concat(params.slideActiveClass, \" \").concat(params.slideNextClass, \" \").concat(params.slidePrevClass, \" \").concat(params.slideDuplicateActiveClass, \" \").concat(params.slideDuplicateNextClass, \" \").concat(params.slideDuplicatePrevClass));\n    var activeSlide;\n\n    if (isVirtual) {\n      activeSlide = swiper.$wrapperEl.find(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(activeIndex, \"\\\"]\"));\n    } else {\n      activeSlide = slides.eq(activeIndex);\n    } // Active classes\n\n\n    activeSlide.addClass(params.slideActiveClass);\n\n    if (params.loop) {\n      // Duplicate to all looped slides\n      if (activeSlide.hasClass(params.slideDuplicateClass)) {\n        $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n      } else {\n        $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n      }\n    } // Next Slide\n\n\n    var nextSlide = activeSlide.nextAll(\".\".concat(params.slideClass)).eq(0).addClass(params.slideNextClass);\n\n    if (params.loop && nextSlide.length === 0) {\n      nextSlide = slides.eq(0);\n      nextSlide.addClass(params.slideNextClass);\n    } // Prev Slide\n\n\n    var prevSlide = activeSlide.prevAll(\".\".concat(params.slideClass)).eq(0).addClass(params.slidePrevClass);\n\n    if (params.loop && prevSlide.length === 0) {\n      prevSlide = slides.eq(-1);\n      prevSlide.addClass(params.slidePrevClass);\n    }\n\n    if (params.loop) {\n      // Duplicate to all looped slides\n      if (nextSlide.hasClass(params.slideDuplicateClass)) {\n        $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n      } else {\n        $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n      }\n\n      if (prevSlide.hasClass(params.slideDuplicateClass)) {\n        $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n      } else {\n        $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n      }\n    }\n\n    swiper.emitSlidesClasses();\n  }\n\n  function updateActiveIndex(newActiveIndex) {\n    var swiper = this;\n    var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n    var slidesGrid = swiper.slidesGrid,\n        snapGrid = swiper.snapGrid,\n        params = swiper.params,\n        previousIndex = swiper.activeIndex,\n        previousRealIndex = swiper.realIndex,\n        previousSnapIndex = swiper.snapIndex;\n    var activeIndex = newActiveIndex;\n    var snapIndex;\n\n    if (typeof activeIndex === 'undefined') {\n      for (var i = 0; i < slidesGrid.length; i += 1) {\n        if (typeof slidesGrid[i + 1] !== 'undefined') {\n          if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n            activeIndex = i;\n          } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n            activeIndex = i + 1;\n          }\n        } else if (translate >= slidesGrid[i]) {\n          activeIndex = i;\n        }\n      } // Normalize slideIndex\n\n\n      if (params.normalizeSlideIndex) {\n        if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n      }\n    }\n\n    if (snapGrid.indexOf(translate) >= 0) {\n      snapIndex = snapGrid.indexOf(translate);\n    } else {\n      var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n      snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n    }\n\n    if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n    if (activeIndex === previousIndex) {\n      if (snapIndex !== previousSnapIndex) {\n        swiper.snapIndex = snapIndex;\n        swiper.emit('snapIndexChange');\n      }\n\n      return;\n    } // Get real index\n\n\n    var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n    Object.assign(swiper, {\n      snapIndex: snapIndex,\n      realIndex: realIndex,\n      previousIndex: previousIndex,\n      activeIndex: activeIndex\n    });\n    swiper.emit('activeIndexChange');\n    swiper.emit('snapIndexChange');\n\n    if (previousRealIndex !== realIndex) {\n      swiper.emit('realIndexChange');\n    }\n\n    if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n      swiper.emit('slideChange');\n    }\n  }\n\n  function updateClickedSlide(e) {\n    var swiper = this;\n    var params = swiper.params;\n    var slide = $(e).closest(\".\".concat(params.slideClass))[0];\n    var slideFound = false;\n    var slideIndex;\n\n    if (slide) {\n      for (var i = 0; i < swiper.slides.length; i += 1) {\n        if (swiper.slides[i] === slide) {\n          slideFound = true;\n          slideIndex = i;\n          break;\n        }\n      }\n    }\n\n    if (slide && slideFound) {\n      swiper.clickedSlide = slide;\n\n      if (swiper.virtual && swiper.params.virtual.enabled) {\n        swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n      } else {\n        swiper.clickedIndex = slideIndex;\n      }\n    } else {\n      swiper.clickedSlide = undefined;\n      swiper.clickedIndex = undefined;\n      return;\n    }\n\n    if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n      swiper.slideToClickedSlide();\n    }\n  }\n\n  var update = {\n    updateSize: updateSize,\n    updateSlides: updateSlides,\n    updateAutoHeight: updateAutoHeight,\n    updateSlidesOffset: updateSlidesOffset,\n    updateSlidesProgress: updateSlidesProgress,\n    updateProgress: updateProgress,\n    updateSlidesClasses: updateSlidesClasses,\n    updateActiveIndex: updateActiveIndex,\n    updateClickedSlide: updateClickedSlide\n  };\n\n  function getSwiperTranslate(axis) {\n    if (axis === void 0) {\n      axis = this.isHorizontal() ? 'x' : 'y';\n    }\n\n    var swiper = this;\n    var params = swiper.params,\n        rtl = swiper.rtlTranslate,\n        translate = swiper.translate,\n        $wrapperEl = swiper.$wrapperEl;\n\n    if (params.virtualTranslate) {\n      return rtl ? -translate : translate;\n    }\n\n    if (params.cssMode) {\n      return translate;\n    }\n\n    var currentTranslate = getTranslate($wrapperEl[0], axis);\n    if (rtl) currentTranslate = -currentTranslate;\n    return currentTranslate || 0;\n  }\n\n  function setTranslate(translate, byController) {\n    var swiper = this;\n    var rtl = swiper.rtlTranslate,\n        params = swiper.params,\n        $wrapperEl = swiper.$wrapperEl,\n        wrapperEl = swiper.wrapperEl,\n        progress = swiper.progress;\n    var x = 0;\n    var y = 0;\n    var z = 0;\n\n    if (swiper.isHorizontal()) {\n      x = rtl ? -translate : translate;\n    } else {\n      y = translate;\n    }\n\n    if (params.roundLengths) {\n      x = Math.floor(x);\n      y = Math.floor(y);\n    }\n\n    if (params.cssMode) {\n      wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n    } else if (!params.virtualTranslate) {\n      $wrapperEl.transform(\"translate3d(\".concat(x, \"px, \").concat(y, \"px, \").concat(z, \"px)\"));\n    }\n\n    swiper.previousTranslate = swiper.translate;\n    swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n    var newProgress;\n    var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n    if (translatesDiff === 0) {\n      newProgress = 0;\n    } else {\n      newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n    }\n\n    if (newProgress !== progress) {\n      swiper.updateProgress(translate);\n    }\n\n    swiper.emit('setTranslate', swiper.translate, byController);\n  }\n\n  function minTranslate() {\n    return -this.snapGrid[0];\n  }\n\n  function maxTranslate() {\n    return -this.snapGrid[this.snapGrid.length - 1];\n  }\n\n  function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n    if (translate === void 0) {\n      translate = 0;\n    }\n\n    if (speed === void 0) {\n      speed = this.params.speed;\n    }\n\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    if (translateBounds === void 0) {\n      translateBounds = true;\n    }\n\n    var swiper = this;\n    var params = swiper.params,\n        wrapperEl = swiper.wrapperEl;\n\n    if (swiper.animating && params.preventInteractionOnTransition) {\n      return false;\n    }\n\n    var minTranslate = swiper.minTranslate();\n    var maxTranslate = swiper.maxTranslate();\n    var newTranslate;\n    if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n    swiper.updateProgress(newTranslate);\n\n    if (params.cssMode) {\n      var isH = swiper.isHorizontal();\n\n      if (speed === 0) {\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n      } else {\n        var _wrapperEl$scrollTo;\n\n        if (!swiper.support.smoothScroll) {\n          animateCSSModeScroll({\n            swiper: swiper,\n            targetPosition: -newTranslate,\n            side: isH ? 'left' : 'top'\n          });\n          return true;\n        }\n\n        wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _defineProperty(_wrapperEl$scrollTo, isH ? 'left' : 'top', -newTranslate), _defineProperty(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\n      }\n\n      return true;\n    }\n\n    if (speed === 0) {\n      swiper.setTransition(0);\n      swiper.setTranslate(newTranslate);\n\n      if (runCallbacks) {\n        swiper.emit('beforeTransitionStart', speed, internal);\n        swiper.emit('transitionEnd');\n      }\n    } else {\n      swiper.setTransition(speed);\n      swiper.setTranslate(newTranslate);\n\n      if (runCallbacks) {\n        swiper.emit('beforeTransitionStart', speed, internal);\n        swiper.emit('transitionStart');\n      }\n\n      if (!swiper.animating) {\n        swiper.animating = true;\n\n        if (!swiper.onTranslateToWrapperTransitionEnd) {\n          swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n            if (!swiper || swiper.destroyed) return;\n            if (e.target !== this) return;\n            swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n            swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n            swiper.onTranslateToWrapperTransitionEnd = null;\n            delete swiper.onTranslateToWrapperTransitionEnd;\n\n            if (runCallbacks) {\n              swiper.emit('transitionEnd');\n            }\n          };\n        }\n\n        swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n        swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n      }\n    }\n\n    return true;\n  }\n\n  var translate = {\n    getTranslate: getSwiperTranslate,\n    setTranslate: setTranslate,\n    minTranslate: minTranslate,\n    maxTranslate: maxTranslate,\n    translateTo: translateTo\n  };\n\n  function setTransition(duration, byController) {\n    var swiper = this;\n\n    if (!swiper.params.cssMode) {\n      swiper.$wrapperEl.transition(duration);\n    }\n\n    swiper.emit('setTransition', duration, byController);\n  }\n\n  function transitionEmit(_ref) {\n    var swiper = _ref.swiper,\n        runCallbacks = _ref.runCallbacks,\n        direction = _ref.direction,\n        step = _ref.step;\n    var activeIndex = swiper.activeIndex,\n        previousIndex = swiper.previousIndex;\n    var dir = direction;\n\n    if (!dir) {\n      if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n    }\n\n    swiper.emit(\"transition\".concat(step));\n\n    if (runCallbacks && activeIndex !== previousIndex) {\n      if (dir === 'reset') {\n        swiper.emit(\"slideResetTransition\".concat(step));\n        return;\n      }\n\n      swiper.emit(\"slideChangeTransition\".concat(step));\n\n      if (dir === 'next') {\n        swiper.emit(\"slideNextTransition\".concat(step));\n      } else {\n        swiper.emit(\"slidePrevTransition\".concat(step));\n      }\n    }\n  }\n\n  function transitionStart(runCallbacks, direction) {\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    var swiper = this;\n    var params = swiper.params;\n    if (params.cssMode) return;\n\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n\n    transitionEmit({\n      swiper: swiper,\n      runCallbacks: runCallbacks,\n      direction: direction,\n      step: 'Start'\n    });\n  }\n\n  function transitionEnd(runCallbacks, direction) {\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    var swiper = this;\n    var params = swiper.params;\n    swiper.animating = false;\n    if (params.cssMode) return;\n    swiper.setTransition(0);\n    transitionEmit({\n      swiper: swiper,\n      runCallbacks: runCallbacks,\n      direction: direction,\n      step: 'End'\n    });\n  }\n\n  var transition = {\n    setTransition: setTransition,\n    transitionStart: transitionStart,\n    transitionEnd: transitionEnd\n  };\n\n  function slideTo(index, speed, runCallbacks, internal, initial) {\n    if (index === void 0) {\n      index = 0;\n    }\n\n    if (speed === void 0) {\n      speed = this.params.speed;\n    }\n\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    if (typeof index !== 'number' && typeof index !== 'string') {\n      throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\".concat(_typeof(index), \"] given.\"));\n    }\n\n    if (typeof index === 'string') {\n      /**\n       * The `index` argument converted from `string` to `number`.\n       * @type {number}\n       */\n      var indexAsNumber = parseInt(index, 10);\n      /**\n       * Determines whether the `index` argument is a valid `number`\n       * after being converted from the `string` type.\n       * @type {boolean}\n       */\n\n      var isValidNumber = isFinite(indexAsNumber);\n\n      if (!isValidNumber) {\n        throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\".concat(index, \"] given.\"));\n      } // Knowing that the converted `index` is a valid number,\n      // we can update the original argument's value.\n\n\n      index = indexAsNumber;\n    }\n\n    var swiper = this;\n    var slideIndex = index;\n    if (slideIndex < 0) slideIndex = 0;\n    var params = swiper.params,\n        snapGrid = swiper.snapGrid,\n        slidesGrid = swiper.slidesGrid,\n        previousIndex = swiper.previousIndex,\n        activeIndex = swiper.activeIndex,\n        rtl = swiper.rtlTranslate,\n        wrapperEl = swiper.wrapperEl,\n        enabled = swiper.enabled;\n\n    if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n      return false;\n    }\n\n    var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n    var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n    if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n    var translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n    if (params.normalizeSlideIndex) {\n      for (var i = 0; i < slidesGrid.length; i += 1) {\n        var normalizedTranslate = -Math.floor(translate * 100);\n        var normalizedGrid = Math.floor(slidesGrid[i] * 100);\n        var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n        if (typeof slidesGrid[i + 1] !== 'undefined') {\n          if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n            slideIndex = i;\n          } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n            slideIndex = i + 1;\n          }\n        } else if (normalizedTranslate >= normalizedGrid) {\n          slideIndex = i;\n        }\n      }\n    } // Directions locks\n\n\n    if (swiper.initialized && slideIndex !== activeIndex) {\n      if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n        return false;\n      }\n\n      if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n        if ((activeIndex || 0) !== slideIndex) return false;\n      }\n    }\n\n    if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n      swiper.emit('beforeSlideChangeStart');\n    } // Update progress\n\n\n    swiper.updateProgress(translate);\n    var direction;\n    if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n    if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n      swiper.updateActiveIndex(slideIndex); // Update Height\n\n      if (params.autoHeight) {\n        swiper.updateAutoHeight();\n      }\n\n      swiper.updateSlidesClasses();\n\n      if (params.effect !== 'slide') {\n        swiper.setTranslate(translate);\n      }\n\n      if (direction !== 'reset') {\n        swiper.transitionStart(runCallbacks, direction);\n        swiper.transitionEnd(runCallbacks, direction);\n      }\n\n      return false;\n    }\n\n    if (params.cssMode) {\n      var isH = swiper.isHorizontal();\n      var t = rtl ? translate : -translate;\n\n      if (speed === 0) {\n        var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n        if (isVirtual) {\n          swiper.wrapperEl.style.scrollSnapType = 'none';\n          swiper._immediateVirtual = true;\n        }\n\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n        if (isVirtual) {\n          requestAnimationFrame(function () {\n            swiper.wrapperEl.style.scrollSnapType = '';\n            swiper._swiperImmediateVirtual = false;\n          });\n        }\n      } else {\n        var _wrapperEl$scrollTo2;\n\n        if (!swiper.support.smoothScroll) {\n          animateCSSModeScroll({\n            swiper: swiper,\n            targetPosition: t,\n            side: isH ? 'left' : 'top'\n          });\n          return true;\n        }\n\n        wrapperEl.scrollTo((_wrapperEl$scrollTo2 = {}, _defineProperty(_wrapperEl$scrollTo2, isH ? 'left' : 'top', t), _defineProperty(_wrapperEl$scrollTo2, \"behavior\", 'smooth'), _wrapperEl$scrollTo2));\n      }\n\n      return true;\n    }\n\n    swiper.setTransition(speed);\n    swiper.setTranslate(translate);\n    swiper.updateActiveIndex(slideIndex);\n    swiper.updateSlidesClasses();\n    swiper.emit('beforeTransitionStart', speed, internal);\n    swiper.transitionStart(runCallbacks, direction);\n\n    if (speed === 0) {\n      swiper.transitionEnd(runCallbacks, direction);\n    } else if (!swiper.animating) {\n      swiper.animating = true;\n\n      if (!swiper.onSlideToWrapperTransitionEnd) {\n        swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n          if (!swiper || swiper.destroyed) return;\n          if (e.target !== this) return;\n          swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n          swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n          swiper.onSlideToWrapperTransitionEnd = null;\n          delete swiper.onSlideToWrapperTransitionEnd;\n          swiper.transitionEnd(runCallbacks, direction);\n        };\n      }\n\n      swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n      swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n    }\n\n    return true;\n  }\n\n  function slideToLoop(index, speed, runCallbacks, internal) {\n    if (index === void 0) {\n      index = 0;\n    }\n\n    if (speed === void 0) {\n      speed = this.params.speed;\n    }\n\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    if (typeof index === 'string') {\n      /**\n       * The `index` argument converted from `string` to `number`.\n       * @type {number}\n       */\n      var indexAsNumber = parseInt(index, 10);\n      /**\n       * Determines whether the `index` argument is a valid `number`\n       * after being converted from the `string` type.\n       * @type {boolean}\n       */\n\n      var isValidNumber = isFinite(indexAsNumber);\n\n      if (!isValidNumber) {\n        throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\".concat(index, \"] given.\"));\n      } // Knowing that the converted `index` is a valid number,\n      // we can update the original argument's value.\n\n\n      index = indexAsNumber;\n    }\n\n    var swiper = this;\n    var newIndex = index;\n\n    if (swiper.params.loop) {\n      newIndex += swiper.loopedSlides;\n    }\n\n    return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n  }\n  /* eslint no-unused-vars: \"off\" */\n\n\n  function slideNext(speed, runCallbacks, internal) {\n    if (speed === void 0) {\n      speed = this.params.speed;\n    }\n\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    var swiper = this;\n    var animating = swiper.animating,\n        enabled = swiper.enabled,\n        params = swiper.params;\n    if (!enabled) return swiper;\n    var perGroup = params.slidesPerGroup;\n\n    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n      perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n    }\n\n    var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n    if (params.loop) {\n      if (animating && params.loopPreventsSlide) return false;\n      swiper.loopFix(); // eslint-disable-next-line\n\n      swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n    }\n\n    if (params.rewind && swiper.isEnd) {\n      return swiper.slideTo(0, speed, runCallbacks, internal);\n    }\n\n    return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n  }\n  /* eslint no-unused-vars: \"off\" */\n\n\n  function slidePrev(speed, runCallbacks, internal) {\n    if (speed === void 0) {\n      speed = this.params.speed;\n    }\n\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    var swiper = this;\n    var params = swiper.params,\n        animating = swiper.animating,\n        snapGrid = swiper.snapGrid,\n        slidesGrid = swiper.slidesGrid,\n        rtlTranslate = swiper.rtlTranslate,\n        enabled = swiper.enabled;\n    if (!enabled) return swiper;\n\n    if (params.loop) {\n      if (animating && params.loopPreventsSlide) return false;\n      swiper.loopFix(); // eslint-disable-next-line\n\n      swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n    }\n\n    var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n    function normalize(val) {\n      if (val < 0) return -Math.floor(Math.abs(val));\n      return Math.floor(val);\n    }\n\n    var normalizedTranslate = normalize(translate);\n    var normalizedSnapGrid = snapGrid.map(function (val) {\n      return normalize(val);\n    });\n    var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n    if (typeof prevSnap === 'undefined' && params.cssMode) {\n      var prevSnapIndex;\n      snapGrid.forEach(function (snap, snapIndex) {\n        if (normalizedTranslate >= snap) {\n          // prevSnap = snap;\n          prevSnapIndex = snapIndex;\n        }\n      });\n\n      if (typeof prevSnapIndex !== 'undefined') {\n        prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n      }\n    }\n\n    var prevIndex = 0;\n\n    if (typeof prevSnap !== 'undefined') {\n      prevIndex = slidesGrid.indexOf(prevSnap);\n      if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n      if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n        prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n        prevIndex = Math.max(prevIndex, 0);\n      }\n    }\n\n    if (params.rewind && swiper.isBeginning) {\n      var lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n      return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n    }\n\n    return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n  }\n  /* eslint no-unused-vars: \"off\" */\n\n\n  function slideReset(speed, runCallbacks, internal) {\n    if (speed === void 0) {\n      speed = this.params.speed;\n    }\n\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    var swiper = this;\n    return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n  }\n  /* eslint no-unused-vars: \"off\" */\n\n\n  function slideToClosest(speed, runCallbacks, internal, threshold) {\n    if (speed === void 0) {\n      speed = this.params.speed;\n    }\n\n    if (runCallbacks === void 0) {\n      runCallbacks = true;\n    }\n\n    if (threshold === void 0) {\n      threshold = 0.5;\n    }\n\n    var swiper = this;\n    var index = swiper.activeIndex;\n    var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n    var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n    var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n    if (translate >= swiper.snapGrid[snapIndex]) {\n      // The current translate is on or after the current snap index, so the choice\n      // is between the current index and the one after it.\n      var currentSnap = swiper.snapGrid[snapIndex];\n      var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n      if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n        index += swiper.params.slidesPerGroup;\n      }\n    } else {\n      // The current translate is before the current snap index, so the choice\n      // is between the current index and the one before it.\n      var prevSnap = swiper.snapGrid[snapIndex - 1];\n      var _currentSnap = swiper.snapGrid[snapIndex];\n\n      if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n        index -= swiper.params.slidesPerGroup;\n      }\n    }\n\n    index = Math.max(index, 0);\n    index = Math.min(index, swiper.slidesGrid.length - 1);\n    return swiper.slideTo(index, speed, runCallbacks, internal);\n  }\n\n  function slideToClickedSlide() {\n    var swiper = this;\n    var params = swiper.params,\n        $wrapperEl = swiper.$wrapperEl;\n    var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n    var slideToIndex = swiper.clickedIndex;\n    var realIndex;\n\n    if (params.loop) {\n      if (swiper.animating) return;\n      realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n      if (params.centeredSlides) {\n        if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n          swiper.loopFix();\n          slideToIndex = $wrapperEl.children(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(params.slideDuplicateClass, \")\")).eq(0).index();\n          nextTick(function () {\n            swiper.slideTo(slideToIndex);\n          });\n        } else {\n          swiper.slideTo(slideToIndex);\n        }\n      } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n        swiper.loopFix();\n        slideToIndex = $wrapperEl.children(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(params.slideDuplicateClass, \")\")).eq(0).index();\n        nextTick(function () {\n          swiper.slideTo(slideToIndex);\n        });\n      } else {\n        swiper.slideTo(slideToIndex);\n      }\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  }\n\n  var slide = {\n    slideTo: slideTo,\n    slideToLoop: slideToLoop,\n    slideNext: slideNext,\n    slidePrev: slidePrev,\n    slideReset: slideReset,\n    slideToClosest: slideToClosest,\n    slideToClickedSlide: slideToClickedSlide\n  };\n\n  function loopCreate() {\n    var swiper = this;\n    var document = getDocument();\n    var params = swiper.params,\n        $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n    var $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n    $selector.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass)).remove();\n    var slides = $selector.children(\".\".concat(params.slideClass));\n\n    if (params.loopFillGroupWithBlank) {\n      var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n      if (blankSlidesNum !== params.slidesPerGroup) {\n        for (var i = 0; i < blankSlidesNum; i += 1) {\n          var blankNode = $(document.createElement('div')).addClass(\"\".concat(params.slideClass, \" \").concat(params.slideBlankClass));\n          $selector.append(blankNode);\n        }\n\n        slides = $selector.children(\".\".concat(params.slideClass));\n      }\n    }\n\n    if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n    swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n    swiper.loopedSlides += params.loopAdditionalSlides;\n\n    if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n      swiper.loopedSlides = slides.length;\n    }\n\n    var prependSlides = [];\n    var appendSlides = [];\n    slides.each(function (el, index) {\n      var slide = $(el);\n      slide.attr('data-swiper-slide-index', index);\n    });\n\n    for (var _i2 = 0; _i2 < swiper.loopedSlides; _i2 += 1) {\n      var _index2 = _i2 - Math.floor(_i2 / slides.length) * slides.length;\n\n      appendSlides.push(slides.eq(_index2)[0]);\n      prependSlides.unshift(slides.eq(slides.length - _index2 - 1)[0]);\n    }\n\n    for (var _i3 = 0; _i3 < appendSlides.length; _i3 += 1) {\n      $selector.append($(appendSlides[_i3].cloneNode(true)).addClass(params.slideDuplicateClass));\n    }\n\n    for (var _i4 = prependSlides.length - 1; _i4 >= 0; _i4 -= 1) {\n      $selector.prepend($(prependSlides[_i4].cloneNode(true)).addClass(params.slideDuplicateClass));\n    }\n  }\n\n  function loopFix() {\n    var swiper = this;\n    swiper.emit('beforeLoopFix');\n    var activeIndex = swiper.activeIndex,\n        slides = swiper.slides,\n        loopedSlides = swiper.loopedSlides,\n        allowSlidePrev = swiper.allowSlidePrev,\n        allowSlideNext = swiper.allowSlideNext,\n        snapGrid = swiper.snapGrid,\n        rtl = swiper.rtlTranslate;\n    var newIndex;\n    swiper.allowSlidePrev = true;\n    swiper.allowSlideNext = true;\n    var snapTranslate = -snapGrid[activeIndex];\n    var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n    if (activeIndex < loopedSlides) {\n      newIndex = slides.length - loopedSlides * 3 + activeIndex;\n      newIndex += loopedSlides;\n      var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n      if (slideChanged && diff !== 0) {\n        swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n      }\n    } else if (activeIndex >= slides.length - loopedSlides) {\n      // Fix For Positive Oversliding\n      newIndex = -slides.length + activeIndex + loopedSlides;\n      newIndex += loopedSlides;\n\n      var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n      if (_slideChanged && diff !== 0) {\n        swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n      }\n    }\n\n    swiper.allowSlidePrev = allowSlidePrev;\n    swiper.allowSlideNext = allowSlideNext;\n    swiper.emit('loopFix');\n  }\n\n  function loopDestroy() {\n    var swiper = this;\n    var $wrapperEl = swiper.$wrapperEl,\n        params = swiper.params,\n        slides = swiper.slides;\n    $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \",.\").concat(params.slideClass, \".\").concat(params.slideBlankClass)).remove();\n    slides.removeAttr('data-swiper-slide-index');\n  }\n\n  var loop = {\n    loopCreate: loopCreate,\n    loopFix: loopFix,\n    loopDestroy: loopDestroy\n  };\n\n  function setGrabCursor(moving) {\n    var swiper = this;\n    if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n    var el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n    el.style.cursor = 'move';\n    el.style.cursor = moving ? 'grabbing' : 'grab';\n  }\n\n  function unsetGrabCursor() {\n    var swiper = this;\n\n    if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n      return;\n    }\n\n    swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n  }\n\n  var grabCursor = {\n    setGrabCursor: setGrabCursor,\n    unsetGrabCursor: unsetGrabCursor\n  };\n\n  function closestElement(selector, base) {\n    if (base === void 0) {\n      base = this;\n    }\n\n    function __closestFrom(el) {\n      if (!el || el === getDocument() || el === getWindow()) return null;\n      if (el.assignedSlot) el = el.assignedSlot;\n      var found = el.closest(selector);\n\n      if (!found && !el.getRootNode) {\n        return null;\n      }\n\n      return found || __closestFrom(el.getRootNode().host);\n    }\n\n    return __closestFrom(base);\n  }\n\n  function onTouchStart(event) {\n    var swiper = this;\n    var document = getDocument();\n    var window = getWindow();\n    var data = swiper.touchEventsData;\n    var params = swiper.params,\n        touches = swiper.touches,\n        enabled = swiper.enabled;\n    if (!enabled) return;\n\n    if (swiper.animating && params.preventInteractionOnTransition) {\n      return;\n    }\n\n    if (!swiper.animating && params.cssMode && params.loop) {\n      swiper.loopFix();\n    }\n\n    var e = event;\n    if (e.originalEvent) e = e.originalEvent;\n    var $targetEl = $(e.target);\n\n    if (params.touchEventsTarget === 'wrapper') {\n      if (!$targetEl.closest(swiper.wrapperEl).length) return;\n    }\n\n    data.isTouchEvent = e.type === 'touchstart';\n    if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n    if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n    if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n    var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n    var eventPath = event.composedPath ? event.composedPath() : event.path;\n\n    if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n      $targetEl = $(eventPath[0]);\n    }\n\n    var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(params.noSwipingClass);\n    var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n    if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n      swiper.allowClick = true;\n      return;\n    }\n\n    if (params.swipeHandler) {\n      if (!$targetEl.closest(params.swipeHandler)[0]) return;\n    }\n\n    touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n    touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n    var startX = touches.currentX;\n    var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n    var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n    var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n    if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n      if (edgeSwipeDetection === 'prevent') {\n        event.preventDefault();\n      } else {\n        return;\n      }\n    }\n\n    Object.assign(data, {\n      isTouched: true,\n      isMoved: false,\n      allowTouchCallbacks: true,\n      isScrolling: undefined,\n      startMoving: undefined\n    });\n    touches.startX = startX;\n    touches.startY = startY;\n    data.touchStartTime = now();\n    swiper.allowClick = true;\n    swiper.updateSize();\n    swiper.swipeDirection = undefined;\n    if (params.threshold > 0) data.allowThresholdMove = false;\n\n    if (e.type !== 'touchstart') {\n      var preventDefault = true;\n\n      if ($targetEl.is(data.focusableElements)) {\n        preventDefault = false;\n\n        if ($targetEl[0].nodeName === 'SELECT') {\n          data.isTouched = false;\n        }\n      }\n\n      if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n        document.activeElement.blur();\n      }\n\n      var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n      if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n        e.preventDefault();\n      }\n    }\n\n    if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n      swiper.freeMode.onTouchStart();\n    }\n\n    swiper.emit('touchStart', e);\n  }\n\n  function onTouchMove(event) {\n    var document = getDocument();\n    var swiper = this;\n    var data = swiper.touchEventsData;\n    var params = swiper.params,\n        touches = swiper.touches,\n        rtl = swiper.rtlTranslate,\n        enabled = swiper.enabled;\n    if (!enabled) return;\n    var e = event;\n    if (e.originalEvent) e = e.originalEvent;\n\n    if (!data.isTouched) {\n      if (data.startMoving && data.isScrolling) {\n        swiper.emit('touchMoveOpposite', e);\n      }\n\n      return;\n    }\n\n    if (data.isTouchEvent && e.type !== 'touchmove') return;\n    var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n    var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n    var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n    if (e.preventedByNestedSwiper) {\n      touches.startX = pageX;\n      touches.startY = pageY;\n      return;\n    }\n\n    if (!swiper.allowTouchMove) {\n      if (!$(e.target).is(data.focusableElements)) {\n        swiper.allowClick = false;\n      }\n\n      if (data.isTouched) {\n        Object.assign(touches, {\n          startX: pageX,\n          startY: pageY,\n          currentX: pageX,\n          currentY: pageY\n        });\n        data.touchStartTime = now();\n      }\n\n      return;\n    }\n\n    if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n      if (swiper.isVertical()) {\n        // Vertical\n        if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n          data.isTouched = false;\n          data.isMoved = false;\n          return;\n        }\n      } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n        return;\n      }\n    }\n\n    if (data.isTouchEvent && document.activeElement) {\n      if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n        data.isMoved = true;\n        swiper.allowClick = false;\n        return;\n      }\n    }\n\n    if (data.allowTouchCallbacks) {\n      swiper.emit('touchMove', e);\n    }\n\n    if (e.targetTouches && e.targetTouches.length > 1) return;\n    touches.currentX = pageX;\n    touches.currentY = pageY;\n    var diffX = touches.currentX - touches.startX;\n    var diffY = touches.currentY - touches.startY;\n    if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n    if (typeof data.isScrolling === 'undefined') {\n      var touchAngle;\n\n      if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n        data.isScrolling = false;\n      } else {\n        // eslint-disable-next-line\n        if (diffX * diffX + diffY * diffY >= 25) {\n          touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n          data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n        }\n      }\n    }\n\n    if (data.isScrolling) {\n      swiper.emit('touchMoveOpposite', e);\n    }\n\n    if (typeof data.startMoving === 'undefined') {\n      if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n        data.startMoving = true;\n      }\n    }\n\n    if (data.isScrolling) {\n      data.isTouched = false;\n      return;\n    }\n\n    if (!data.startMoving) {\n      return;\n    }\n\n    swiper.allowClick = false;\n\n    if (!params.cssMode && e.cancelable) {\n      e.preventDefault();\n    }\n\n    if (params.touchMoveStopPropagation && !params.nested) {\n      e.stopPropagation();\n    }\n\n    if (!data.isMoved) {\n      if (params.loop && !params.cssMode) {\n        swiper.loopFix();\n      }\n\n      data.startTranslate = swiper.getTranslate();\n      swiper.setTransition(0);\n\n      if (swiper.animating) {\n        swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n      }\n\n      data.allowMomentumBounce = false; // Grab Cursor\n\n      if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n        swiper.setGrabCursor(true);\n      }\n\n      swiper.emit('sliderFirstMove', e);\n    }\n\n    swiper.emit('sliderMove', e);\n    data.isMoved = true;\n    var diff = swiper.isHorizontal() ? diffX : diffY;\n    touches.diff = diff;\n    diff *= params.touchRatio;\n    if (rtl) diff = -diff;\n    swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n    data.currentTranslate = diff + data.startTranslate;\n    var disableParentSwiper = true;\n    var resistanceRatio = params.resistanceRatio;\n\n    if (params.touchReleaseOnEdges) {\n      resistanceRatio = 0;\n    }\n\n    if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n    } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n    }\n\n    if (disableParentSwiper) {\n      e.preventedByNestedSwiper = true;\n    } // Directions locks\n\n\n    if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n      data.currentTranslate = data.startTranslate;\n    }\n\n    if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n      data.currentTranslate = data.startTranslate;\n    }\n\n    if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n      data.currentTranslate = data.startTranslate;\n    } // Threshold\n\n\n    if (params.threshold > 0) {\n      if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n        if (!data.allowThresholdMove) {\n          data.allowThresholdMove = true;\n          touches.startX = touches.currentX;\n          touches.startY = touches.currentY;\n          data.currentTranslate = data.startTranslate;\n          touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n          return;\n        }\n      } else {\n        data.currentTranslate = data.startTranslate;\n        return;\n      }\n    }\n\n    if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n    if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n\n    if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n      swiper.freeMode.onTouchMove();\n    } // Update progress\n\n\n    swiper.updateProgress(data.currentTranslate); // Update translate\n\n    swiper.setTranslate(data.currentTranslate);\n  }\n\n  function onTouchEnd(event) {\n    var swiper = this;\n    var data = swiper.touchEventsData;\n    var params = swiper.params,\n        touches = swiper.touches,\n        rtl = swiper.rtlTranslate,\n        slidesGrid = swiper.slidesGrid,\n        enabled = swiper.enabled;\n    if (!enabled) return;\n    var e = event;\n    if (e.originalEvent) e = e.originalEvent;\n\n    if (data.allowTouchCallbacks) {\n      swiper.emit('touchEnd', e);\n    }\n\n    data.allowTouchCallbacks = false;\n\n    if (!data.isTouched) {\n      if (data.isMoved && params.grabCursor) {\n        swiper.setGrabCursor(false);\n      }\n\n      data.isMoved = false;\n      data.startMoving = false;\n      return;\n    } // Return Grab Cursor\n\n\n    if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n      swiper.setGrabCursor(false);\n    } // Time diff\n\n\n    var touchEndTime = now();\n    var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n    if (swiper.allowClick) {\n      var pathTree = e.path || e.composedPath && e.composedPath();\n      swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n      swiper.emit('tap click', e);\n\n      if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n        swiper.emit('doubleTap doubleClick', e);\n      }\n    }\n\n    data.lastClickTime = now();\n    nextTick(function () {\n      if (!swiper.destroyed) swiper.allowClick = true;\n    });\n\n    if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n      data.isTouched = false;\n      data.isMoved = false;\n      data.startMoving = false;\n      return;\n    }\n\n    data.isTouched = false;\n    data.isMoved = false;\n    data.startMoving = false;\n    var currentPos;\n\n    if (params.followFinger) {\n      currentPos = rtl ? swiper.translate : -swiper.translate;\n    } else {\n      currentPos = -data.currentTranslate;\n    }\n\n    if (params.cssMode) {\n      return;\n    }\n\n    if (swiper.params.freeMode && params.freeMode.enabled) {\n      swiper.freeMode.onTouchEnd({\n        currentPos: currentPos\n      });\n      return;\n    } // Find current slide\n\n\n    var stopIndex = 0;\n    var groupSize = swiper.slidesSizesGrid[0];\n\n    for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n      var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n      if (typeof slidesGrid[i + _increment] !== 'undefined') {\n        if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n          stopIndex = i;\n          groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n        }\n      } else if (currentPos >= slidesGrid[i]) {\n        stopIndex = i;\n        groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n      }\n    }\n\n    var rewindFirstIndex = null;\n    var rewindLastIndex = null;\n\n    if (params.rewind) {\n      if (swiper.isBeginning) {\n        rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n      } else if (swiper.isEnd) {\n        rewindFirstIndex = 0;\n      }\n    } // Find current slide size\n\n\n    var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n    var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n    if (timeDiff > params.longSwipesMs) {\n      // Long touches\n      if (!params.longSwipes) {\n        swiper.slideTo(swiper.activeIndex);\n        return;\n      }\n\n      if (swiper.swipeDirection === 'next') {\n        if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n      }\n\n      if (swiper.swipeDirection === 'prev') {\n        if (ratio > 1 - params.longSwipesRatio) {\n          swiper.slideTo(stopIndex + increment);\n        } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n          swiper.slideTo(rewindLastIndex);\n        } else {\n          swiper.slideTo(stopIndex);\n        }\n      }\n    } else {\n      // Short swipes\n      if (!params.shortSwipes) {\n        swiper.slideTo(swiper.activeIndex);\n        return;\n      }\n\n      var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n      if (!isNavButtonTarget) {\n        if (swiper.swipeDirection === 'next') {\n          swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n        }\n\n        if (swiper.swipeDirection === 'prev') {\n          swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n        }\n      } else if (e.target === swiper.navigation.nextEl) {\n        swiper.slideTo(stopIndex + increment);\n      } else {\n        swiper.slideTo(stopIndex);\n      }\n    }\n  }\n\n  function onResize() {\n    var swiper = this;\n    var params = swiper.params,\n        el = swiper.el;\n    if (el && el.offsetWidth === 0) return; // Breakpoints\n\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    } // Save locks\n\n\n    var allowSlideNext = swiper.allowSlideNext,\n        allowSlidePrev = swiper.allowSlidePrev,\n        snapGrid = swiper.snapGrid; // Disable locks on resize\n\n    swiper.allowSlideNext = true;\n    swiper.allowSlidePrev = true;\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateSlidesClasses();\n\n    if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n      swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n    } else {\n      swiper.slideTo(swiper.activeIndex, 0, false, true);\n    }\n\n    if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n      swiper.autoplay.run();\n    } // Return locks after resize\n\n\n    swiper.allowSlidePrev = allowSlidePrev;\n    swiper.allowSlideNext = allowSlideNext;\n\n    if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n      swiper.checkOverflow();\n    }\n  }\n\n  function onClick(e) {\n    var swiper = this;\n    if (!swiper.enabled) return;\n\n    if (!swiper.allowClick) {\n      if (swiper.params.preventClicks) e.preventDefault();\n\n      if (swiper.params.preventClicksPropagation && swiper.animating) {\n        e.stopPropagation();\n        e.stopImmediatePropagation();\n      }\n    }\n  }\n\n  function onScroll() {\n    var swiper = this;\n    var wrapperEl = swiper.wrapperEl,\n        rtlTranslate = swiper.rtlTranslate,\n        enabled = swiper.enabled;\n    if (!enabled) return;\n    swiper.previousTranslate = swiper.translate;\n\n    if (swiper.isHorizontal()) {\n      swiper.translate = -wrapperEl.scrollLeft;\n    } else {\n      swiper.translate = -wrapperEl.scrollTop;\n    } // eslint-disable-next-line\n\n\n    if (swiper.translate === 0) swiper.translate = 0;\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n    var newProgress;\n    var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n    if (translatesDiff === 0) {\n      newProgress = 0;\n    } else {\n      newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n    }\n\n    if (newProgress !== swiper.progress) {\n      swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n    }\n\n    swiper.emit('setTranslate', swiper.translate, false);\n  }\n\n  var dummyEventAttached = false;\n\n  function dummyEventListener() {}\n\n  var events = function events(swiper, method) {\n    var document = getDocument();\n    var params = swiper.params,\n        touchEvents = swiper.touchEvents,\n        el = swiper.el,\n        wrapperEl = swiper.wrapperEl,\n        device = swiper.device,\n        support = swiper.support;\n    var capture = !!params.nested;\n    var domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n    var swiperMethod = method; // Touch Events\n\n    if (!support.touch) {\n      el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n      document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n      document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n    } else {\n      var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n        passive: true,\n        capture: false\n      } : false;\n      el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n      el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n        passive: false,\n        capture: capture\n      } : capture);\n      el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n      if (touchEvents.cancel) {\n        el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n      }\n    } // Prevent Links Clicks\n\n\n    if (params.preventClicks || params.preventClicksPropagation) {\n      el[domMethod]('click', swiper.onClick, true);\n    }\n\n    if (params.cssMode) {\n      wrapperEl[domMethod]('scroll', swiper.onScroll);\n    } // Resize handler\n\n\n    if (params.updateOnWindowResize) {\n      swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n    } else {\n      swiper[swiperMethod]('observerUpdate', onResize, true);\n    }\n  };\n\n  function attachEvents() {\n    var swiper = this;\n    var document = getDocument();\n    var params = swiper.params,\n        support = swiper.support;\n    swiper.onTouchStart = onTouchStart.bind(swiper);\n    swiper.onTouchMove = onTouchMove.bind(swiper);\n    swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n    if (params.cssMode) {\n      swiper.onScroll = onScroll.bind(swiper);\n    }\n\n    swiper.onClick = onClick.bind(swiper);\n\n    if (support.touch && !dummyEventAttached) {\n      document.addEventListener('touchstart', dummyEventListener);\n      dummyEventAttached = true;\n    }\n\n    events(swiper, 'on');\n  }\n\n  function detachEvents() {\n    var swiper = this;\n    events(swiper, 'off');\n  }\n\n  var events$1 = {\n    attachEvents: attachEvents,\n    detachEvents: detachEvents\n  };\n\n  var isGridEnabled = function isGridEnabled(swiper, params) {\n    return swiper.grid && params.grid && params.grid.rows > 1;\n  };\n\n  function setBreakpoint() {\n    var swiper = this;\n    var activeIndex = swiper.activeIndex,\n        initialized = swiper.initialized,\n        _swiper$loopedSlides = swiper.loopedSlides,\n        loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n        params = swiper.params,\n        $el = swiper.$el;\n    var breakpoints = params.breakpoints;\n    if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n    var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n    if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n    var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n    var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n    var wasMultiRow = isGridEnabled(swiper, params);\n    var isMultiRow = isGridEnabled(swiper, breakpointParams);\n    var wasEnabled = params.enabled;\n\n    if (wasMultiRow && !isMultiRow) {\n      $el.removeClass(\"\".concat(params.containerModifierClass, \"grid \").concat(params.containerModifierClass, \"grid-column\"));\n      swiper.emitContainerClasses();\n    } else if (!wasMultiRow && isMultiRow) {\n      $el.addClass(\"\".concat(params.containerModifierClass, \"grid\"));\n\n      if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n        $el.addClass(\"\".concat(params.containerModifierClass, \"grid-column\"));\n      }\n\n      swiper.emitContainerClasses();\n    } // Toggle navigation, pagination, scrollbar\n\n\n    ['navigation', 'pagination', 'scrollbar'].forEach(function (prop) {\n      var wasModuleEnabled = params[prop] && params[prop].enabled;\n      var isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n      if (wasModuleEnabled && !isModuleEnabled) {\n        swiper[prop].disable();\n      }\n\n      if (!wasModuleEnabled && isModuleEnabled) {\n        swiper[prop].enable();\n      }\n    });\n    var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n    var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n    if (directionChanged && initialized) {\n      swiper.changeDirection();\n    }\n\n    extend(swiper.params, breakpointParams);\n    var isEnabled = swiper.params.enabled;\n    Object.assign(swiper, {\n      allowTouchMove: swiper.params.allowTouchMove,\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev\n    });\n\n    if (wasEnabled && !isEnabled) {\n      swiper.disable();\n    } else if (!wasEnabled && isEnabled) {\n      swiper.enable();\n    }\n\n    swiper.currentBreakpoint = breakpoint;\n    swiper.emit('_beforeBreakpoint', breakpointParams);\n\n    if (needsReLoop && initialized) {\n      swiper.loopDestroy();\n      swiper.loopCreate();\n      swiper.updateSlides();\n      swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n    }\n\n    swiper.emit('breakpoint', breakpointParams);\n  }\n\n  function getBreakpoint(breakpoints, base, containerEl) {\n    if (base === void 0) {\n      base = 'window';\n    }\n\n    if (!breakpoints || base === 'container' && !containerEl) return undefined;\n    var breakpoint = false;\n    var window = getWindow();\n    var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n    var points = Object.keys(breakpoints).map(function (point) {\n      if (typeof point === 'string' && point.indexOf('@') === 0) {\n        var minRatio = parseFloat(point.substr(1));\n        var value = currentHeight * minRatio;\n        return {\n          value: value,\n          point: point\n        };\n      }\n\n      return {\n        value: point,\n        point: point\n      };\n    });\n    points.sort(function (a, b) {\n      return parseInt(a.value, 10) - parseInt(b.value, 10);\n    });\n\n    for (var i = 0; i < points.length; i += 1) {\n      var _points$i = points[i],\n          point = _points$i.point,\n          value = _points$i.value;\n\n      if (base === 'window') {\n        if (window.matchMedia(\"(min-width: \".concat(value, \"px)\")).matches) {\n          breakpoint = point;\n        }\n      } else if (value <= containerEl.clientWidth) {\n        breakpoint = point;\n      }\n    }\n\n    return breakpoint || 'max';\n  }\n\n  var breakpoints = {\n    setBreakpoint: setBreakpoint,\n    getBreakpoint: getBreakpoint\n  };\n\n  function prepareClasses(entries, prefix) {\n    var resultClasses = [];\n    entries.forEach(function (item) {\n      if (_typeof(item) === 'object') {\n        Object.keys(item).forEach(function (classNames) {\n          if (item[classNames]) {\n            resultClasses.push(prefix + classNames);\n          }\n        });\n      } else if (typeof item === 'string') {\n        resultClasses.push(prefix + item);\n      }\n    });\n    return resultClasses;\n  }\n\n  function addClasses() {\n    var swiper = this;\n    var classNames = swiper.classNames,\n        params = swiper.params,\n        rtl = swiper.rtl,\n        $el = swiper.$el,\n        device = swiper.device,\n        support = swiper.support; // prettier-ignore\n\n    var suffixes = prepareClasses(['initialized', params.direction, {\n      'pointer-events': !support.touch\n    }, {\n      'free-mode': swiper.params.freeMode && params.freeMode.enabled\n    }, {\n      'autoheight': params.autoHeight\n    }, {\n      'rtl': rtl\n    }, {\n      'grid': params.grid && params.grid.rows > 1\n    }, {\n      'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n    }, {\n      'android': device.android\n    }, {\n      'ios': device.ios\n    }, {\n      'css-mode': params.cssMode\n    }, {\n      'centered': params.cssMode && params.centeredSlides\n    }, {\n      'watch-progress': params.watchSlidesProgress\n    }], params.containerModifierClass);\n    classNames.push.apply(classNames, _toConsumableArray(suffixes));\n    $el.addClass(_toConsumableArray(classNames).join(' '));\n    swiper.emitContainerClasses();\n  }\n\n  function removeClasses() {\n    var swiper = this;\n    var $el = swiper.$el,\n        classNames = swiper.classNames;\n    $el.removeClass(classNames.join(' '));\n    swiper.emitContainerClasses();\n  }\n\n  var classes = {\n    addClasses: addClasses,\n    removeClasses: removeClasses\n  };\n\n  function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n    var window = getWindow();\n    var image;\n\n    function onReady() {\n      if (callback) callback();\n    }\n\n    var isPicture = $(imageEl).parent('picture')[0];\n\n    if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n      if (src) {\n        image = new window.Image();\n        image.onload = onReady;\n        image.onerror = onReady;\n\n        if (sizes) {\n          image.sizes = sizes;\n        }\n\n        if (srcset) {\n          image.srcset = srcset;\n        }\n\n        if (src) {\n          image.src = src;\n        }\n      } else {\n        onReady();\n      }\n    } else {\n      // image already loaded...\n      onReady();\n    }\n  }\n\n  function preloadImages() {\n    var swiper = this;\n    swiper.imagesToLoad = swiper.$el.find('img');\n\n    function onReady() {\n      if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n      if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n      if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n        if (swiper.params.updateOnImagesReady) swiper.update();\n        swiper.emit('imagesReady');\n      }\n    }\n\n    for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n      var imageEl = swiper.imagesToLoad[i];\n      swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n    }\n  }\n\n  var images = {\n    loadImage: loadImage,\n    preloadImages: preloadImages\n  };\n\n  function checkOverflow() {\n    var swiper = this;\n    var wasLocked = swiper.isLocked,\n        params = swiper.params;\n    var slidesOffsetBefore = params.slidesOffsetBefore;\n\n    if (slidesOffsetBefore) {\n      var lastSlideIndex = swiper.slides.length - 1;\n      var lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n      swiper.isLocked = swiper.size > lastSlideRightEdge;\n    } else {\n      swiper.isLocked = swiper.snapGrid.length === 1;\n    }\n\n    if (params.allowSlideNext === true) {\n      swiper.allowSlideNext = !swiper.isLocked;\n    }\n\n    if (params.allowSlidePrev === true) {\n      swiper.allowSlidePrev = !swiper.isLocked;\n    }\n\n    if (wasLocked && wasLocked !== swiper.isLocked) {\n      swiper.isEnd = false;\n    }\n\n    if (wasLocked !== swiper.isLocked) {\n      swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n    }\n  }\n\n  var checkOverflow$1 = {\n    checkOverflow: checkOverflow\n  };\n  var defaults = {\n    init: true,\n    direction: 'horizontal',\n    touchEventsTarget: 'wrapper',\n    initialSlide: 0,\n    speed: 300,\n    cssMode: false,\n    updateOnWindowResize: true,\n    resizeObserver: true,\n    nested: false,\n    createElements: false,\n    enabled: true,\n    focusableElements: 'input, select, option, textarea, button, video, label',\n    // Overrides\n    width: null,\n    height: null,\n    //\n    preventInteractionOnTransition: false,\n    // ssr\n    userAgent: null,\n    url: null,\n    // To support iOS's swipe-to-go-back gesture (when being used in-app).\n    edgeSwipeDetection: false,\n    edgeSwipeThreshold: 20,\n    // Autoheight\n    autoHeight: false,\n    // Set wrapper width\n    setWrapperSize: false,\n    // Virtual Translate\n    virtualTranslate: false,\n    // Effects\n    effect: 'slide',\n    // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n    // Breakpoints\n    breakpoints: undefined,\n    breakpointsBase: 'window',\n    // Slides grid\n    spaceBetween: 0,\n    slidesPerView: 1,\n    slidesPerGroup: 1,\n    slidesPerGroupSkip: 0,\n    slidesPerGroupAuto: false,\n    centeredSlides: false,\n    centeredSlidesBounds: false,\n    slidesOffsetBefore: 0,\n    // in px\n    slidesOffsetAfter: 0,\n    // in px\n    normalizeSlideIndex: true,\n    centerInsufficientSlides: false,\n    // Disable swiper and hide navigation when container not overflow\n    watchOverflow: true,\n    // Round length\n    roundLengths: false,\n    // Touches\n    touchRatio: 1,\n    touchAngle: 45,\n    simulateTouch: true,\n    shortSwipes: true,\n    longSwipes: true,\n    longSwipesRatio: 0.5,\n    longSwipesMs: 300,\n    followFinger: true,\n    allowTouchMove: true,\n    threshold: 0,\n    touchMoveStopPropagation: false,\n    touchStartPreventDefault: true,\n    touchStartForcePreventDefault: false,\n    touchReleaseOnEdges: false,\n    // Unique Navigation Elements\n    uniqueNavElements: true,\n    // Resistance\n    resistance: true,\n    resistanceRatio: 0.85,\n    // Progress\n    watchSlidesProgress: false,\n    // Cursor\n    grabCursor: false,\n    // Clicks\n    preventClicks: true,\n    preventClicksPropagation: true,\n    slideToClickedSlide: false,\n    // Images\n    preloadImages: true,\n    updateOnImagesReady: true,\n    // loop\n    loop: false,\n    loopAdditionalSlides: 0,\n    loopedSlides: null,\n    loopedSlidesLimit: true,\n    loopFillGroupWithBlank: false,\n    loopPreventsSlide: true,\n    // rewind\n    rewind: false,\n    // Swiping/no swiping\n    allowSlidePrev: true,\n    allowSlideNext: true,\n    swipeHandler: null,\n    // '.swipe-handler',\n    noSwiping: true,\n    noSwipingClass: 'swiper-no-swiping',\n    noSwipingSelector: null,\n    // Passive Listeners\n    passiveListeners: true,\n    maxBackfaceHiddenSlides: 10,\n    // NS\n    containerModifierClass: 'swiper-',\n    // NEW\n    slideClass: 'swiper-slide',\n    slideBlankClass: 'swiper-slide-invisible-blank',\n    slideActiveClass: 'swiper-slide-active',\n    slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n    slideVisibleClass: 'swiper-slide-visible',\n    slideDuplicateClass: 'swiper-slide-duplicate',\n    slideNextClass: 'swiper-slide-next',\n    slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n    slidePrevClass: 'swiper-slide-prev',\n    slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n    wrapperClass: 'swiper-wrapper',\n    // Callbacks\n    runCallbacksOnInit: true,\n    // Internals\n    _emitClasses: false\n  };\n\n  function moduleExtendParams(params, allModulesParams) {\n    return function extendParams(obj) {\n      if (obj === void 0) {\n        obj = {};\n      }\n\n      var moduleParamName = Object.keys(obj)[0];\n      var moduleParams = obj[moduleParamName];\n\n      if (_typeof(moduleParams) !== 'object' || moduleParams === null) {\n        extend(allModulesParams, obj);\n        return;\n      }\n\n      if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n        params[moduleParamName] = {\n          auto: true\n        };\n      }\n\n      if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n        extend(allModulesParams, obj);\n        return;\n      }\n\n      if (params[moduleParamName] === true) {\n        params[moduleParamName] = {\n          enabled: true\n        };\n      }\n\n      if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n        params[moduleParamName].enabled = true;\n      }\n\n      if (!params[moduleParamName]) params[moduleParamName] = {\n        enabled: false\n      };\n      extend(allModulesParams, obj);\n    };\n  }\n  /* eslint no-param-reassign: \"off\" */\n\n\n  var prototypes = {\n    eventsEmitter: eventsEmitter,\n    update: update,\n    translate: translate,\n    transition: transition,\n    slide: slide,\n    loop: loop,\n    grabCursor: grabCursor,\n    events: events$1,\n    breakpoints: breakpoints,\n    checkOverflow: checkOverflow$1,\n    classes: classes,\n    images: images\n  };\n  var extendedDefaults = {};\n\n  var Swiper = /*#__PURE__*/function () {\n    function Swiper() {\n      _classCallCheck(this, Swiper);\n\n      var el;\n      var 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      if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n        params = args[0];\n      } else {\n        el = args[0];\n        params = args[1];\n      }\n\n      if (!params) params = {};\n      params = extend({}, params);\n      if (el && !params.el) params.el = el;\n\n      if (params.el && $(params.el).length > 1) {\n        var swipers = [];\n        $(params.el).each(function (containerEl) {\n          var newParams = extend({}, params, {\n            el: containerEl\n          });\n          swipers.push(new Swiper(newParams));\n        }); // eslint-disable-next-line no-constructor-return\n\n        return swipers;\n      } // Swiper Instance\n\n\n      var swiper = this;\n      swiper.__swiper__ = true;\n      swiper.support = getSupport();\n      swiper.device = getDevice({\n        userAgent: params.userAgent\n      });\n      swiper.browser = getBrowser();\n      swiper.eventsListeners = {};\n      swiper.eventsAnyListeners = [];\n      swiper.modules = _toConsumableArray(swiper.__modules__);\n\n      if (params.modules && Array.isArray(params.modules)) {\n        var _swiper$modules;\n\n        (_swiper$modules = swiper.modules).push.apply(_swiper$modules, _toConsumableArray(params.modules));\n      }\n\n      var allModulesParams = {};\n      swiper.modules.forEach(function (mod) {\n        mod({\n          swiper: swiper,\n          extendParams: moduleExtendParams(params, allModulesParams),\n          on: swiper.on.bind(swiper),\n          once: swiper.once.bind(swiper),\n          off: swiper.off.bind(swiper),\n          emit: swiper.emit.bind(swiper)\n        });\n      }); // Extend defaults with modules params\n\n      var swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n      swiper.params = extend({}, swiperParams, extendedDefaults, params);\n      swiper.originalParams = extend({}, swiper.params);\n      swiper.passedParams = extend({}, params); // add event listeners\n\n      if (swiper.params && swiper.params.on) {\n        Object.keys(swiper.params.on).forEach(function (eventName) {\n          swiper.on(eventName, swiper.params.on[eventName]);\n        });\n      }\n\n      if (swiper.params && swiper.params.onAny) {\n        swiper.onAny(swiper.params.onAny);\n      } // Save Dom lib\n\n\n      swiper.$ = $; // Extend Swiper\n\n      Object.assign(swiper, {\n        enabled: swiper.params.enabled,\n        el: el,\n        // Classes\n        classNames: [],\n        // Slides\n        slides: $(),\n        slidesGrid: [],\n        snapGrid: [],\n        slidesSizesGrid: [],\n        // isDirection\n        isHorizontal: function isHorizontal() {\n          return swiper.params.direction === 'horizontal';\n        },\n        isVertical: function isVertical() {\n          return swiper.params.direction === 'vertical';\n        },\n        // Indexes\n        activeIndex: 0,\n        realIndex: 0,\n        //\n        isBeginning: true,\n        isEnd: false,\n        // Props\n        translate: 0,\n        previousTranslate: 0,\n        progress: 0,\n        velocity: 0,\n        animating: false,\n        // Locks\n        allowSlideNext: swiper.params.allowSlideNext,\n        allowSlidePrev: swiper.params.allowSlidePrev,\n        // Touch Events\n        touchEvents: function touchEvents() {\n          var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n          var desktop = ['pointerdown', 'pointermove', 'pointerup'];\n          swiper.touchEventsTouch = {\n            start: touch[0],\n            move: touch[1],\n            end: touch[2],\n            cancel: touch[3]\n          };\n          swiper.touchEventsDesktop = {\n            start: desktop[0],\n            move: desktop[1],\n            end: desktop[2]\n          };\n          return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n        }(),\n        touchEventsData: {\n          isTouched: undefined,\n          isMoved: undefined,\n          allowTouchCallbacks: undefined,\n          touchStartTime: undefined,\n          isScrolling: undefined,\n          currentTranslate: undefined,\n          startTranslate: undefined,\n          allowThresholdMove: undefined,\n          // Form elements to match\n          focusableElements: swiper.params.focusableElements,\n          // Last click time\n          lastClickTime: now(),\n          clickTimeout: undefined,\n          // Velocities\n          velocities: [],\n          allowMomentumBounce: undefined,\n          isTouchEvent: undefined,\n          startMoving: undefined\n        },\n        // Clicks\n        allowClick: true,\n        // Touches\n        allowTouchMove: swiper.params.allowTouchMove,\n        touches: {\n          startX: 0,\n          startY: 0,\n          currentX: 0,\n          currentY: 0,\n          diff: 0\n        },\n        // Images\n        imagesToLoad: [],\n        imagesLoaded: 0\n      });\n      swiper.emit('_swiper'); // Init\n\n      if (swiper.params.init) {\n        swiper.init();\n      } // Return app instance\n      // eslint-disable-next-line no-constructor-return\n\n\n      return swiper;\n    }\n\n    _createClass(Swiper, [{\n      key: \"enable\",\n      value: function enable() {\n        var swiper = this;\n        if (swiper.enabled) return;\n        swiper.enabled = true;\n\n        if (swiper.params.grabCursor) {\n          swiper.setGrabCursor();\n        }\n\n        swiper.emit('enable');\n      }\n    }, {\n      key: \"disable\",\n      value: function disable() {\n        var swiper = this;\n        if (!swiper.enabled) return;\n        swiper.enabled = false;\n\n        if (swiper.params.grabCursor) {\n          swiper.unsetGrabCursor();\n        }\n\n        swiper.emit('disable');\n      }\n    }, {\n      key: \"setProgress\",\n      value: function setProgress(progress, speed) {\n        var swiper = this;\n        progress = Math.min(Math.max(progress, 0), 1);\n        var min = swiper.minTranslate();\n        var max = swiper.maxTranslate();\n        var current = (max - min) * progress + min;\n        swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n        swiper.updateActiveIndex();\n        swiper.updateSlidesClasses();\n      }\n    }, {\n      key: \"emitContainerClasses\",\n      value: function emitContainerClasses() {\n        var swiper = this;\n        if (!swiper.params._emitClasses || !swiper.el) return;\n        var cls = swiper.el.className.split(' ').filter(function (className) {\n          return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n        });\n        swiper.emit('_containerClasses', cls.join(' '));\n      }\n    }, {\n      key: \"getSlideClasses\",\n      value: function getSlideClasses(slideEl) {\n        var swiper = this;\n        if (swiper.destroyed) return '';\n        return slideEl.className.split(' ').filter(function (className) {\n          return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n        }).join(' ');\n      }\n    }, {\n      key: \"emitSlidesClasses\",\n      value: function emitSlidesClasses() {\n        var swiper = this;\n        if (!swiper.params._emitClasses || !swiper.el) return;\n        var updates = [];\n        swiper.slides.each(function (slideEl) {\n          var classNames = swiper.getSlideClasses(slideEl);\n          updates.push({\n            slideEl: slideEl,\n            classNames: classNames\n          });\n          swiper.emit('_slideClass', slideEl, classNames);\n        });\n        swiper.emit('_slideClasses', updates);\n      }\n    }, {\n      key: \"slidesPerViewDynamic\",\n      value: function slidesPerViewDynamic(view, exact) {\n        if (view === void 0) {\n          view = 'current';\n        }\n\n        if (exact === void 0) {\n          exact = false;\n        }\n\n        var swiper = this;\n        var params = swiper.params,\n            slides = swiper.slides,\n            slidesGrid = swiper.slidesGrid,\n            slidesSizesGrid = swiper.slidesSizesGrid,\n            swiperSize = swiper.size,\n            activeIndex = swiper.activeIndex;\n        var spv = 1;\n\n        if (params.centeredSlides) {\n          var slideSize = slides[activeIndex].swiperSlideSize;\n          var breakLoop;\n\n          for (var i = activeIndex + 1; i < slides.length; i += 1) {\n            if (slides[i] && !breakLoop) {\n              slideSize += slides[i].swiperSlideSize;\n              spv += 1;\n              if (slideSize > swiperSize) breakLoop = true;\n            }\n          }\n\n          for (var _i5 = activeIndex - 1; _i5 >= 0; _i5 -= 1) {\n            if (slides[_i5] && !breakLoop) {\n              slideSize += slides[_i5].swiperSlideSize;\n              spv += 1;\n              if (slideSize > swiperSize) breakLoop = true;\n            }\n          }\n        } else {\n          // eslint-disable-next-line\n          if (view === 'current') {\n            for (var _i6 = activeIndex + 1; _i6 < slides.length; _i6 += 1) {\n              var slideInView = exact ? slidesGrid[_i6] + slidesSizesGrid[_i6] - slidesGrid[activeIndex] < swiperSize : slidesGrid[_i6] - slidesGrid[activeIndex] < swiperSize;\n\n              if (slideInView) {\n                spv += 1;\n              }\n            }\n          } else {\n            // previous\n            for (var _i7 = activeIndex - 1; _i7 >= 0; _i7 -= 1) {\n              var _slideInView = slidesGrid[activeIndex] - slidesGrid[_i7] < swiperSize;\n\n              if (_slideInView) {\n                spv += 1;\n              }\n            }\n          }\n        }\n\n        return spv;\n      }\n    }, {\n      key: \"update\",\n      value: function update() {\n        var swiper = this;\n        if (!swiper || swiper.destroyed) return;\n        var snapGrid = swiper.snapGrid,\n            params = swiper.params; // Breakpoints\n\n        if (params.breakpoints) {\n          swiper.setBreakpoint();\n        }\n\n        swiper.updateSize();\n        swiper.updateSlides();\n        swiper.updateProgress();\n        swiper.updateSlidesClasses();\n\n        function setTranslate() {\n          var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n          var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n          swiper.setTranslate(newTranslate);\n          swiper.updateActiveIndex();\n          swiper.updateSlidesClasses();\n        }\n\n        var translated;\n\n        if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n          setTranslate();\n\n          if (swiper.params.autoHeight) {\n            swiper.updateAutoHeight();\n          }\n        } else {\n          if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n            translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n          } else {\n            translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n          }\n\n          if (!translated) {\n            setTranslate();\n          }\n        }\n\n        if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n          swiper.checkOverflow();\n        }\n\n        swiper.emit('update');\n      }\n    }, {\n      key: \"changeDirection\",\n      value: function changeDirection(newDirection, needUpdate) {\n        if (needUpdate === void 0) {\n          needUpdate = true;\n        }\n\n        var swiper = this;\n        var currentDirection = swiper.params.direction;\n\n        if (!newDirection) {\n          // eslint-disable-next-line\n          newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n        }\n\n        if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n          return swiper;\n        }\n\n        swiper.$el.removeClass(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection)).addClass(\"\".concat(swiper.params.containerModifierClass).concat(newDirection));\n        swiper.emitContainerClasses();\n        swiper.params.direction = newDirection;\n        swiper.slides.each(function (slideEl) {\n          if (newDirection === 'vertical') {\n            slideEl.style.width = '';\n          } else {\n            slideEl.style.height = '';\n          }\n        });\n        swiper.emit('changeDirection');\n        if (needUpdate) swiper.update();\n        return swiper;\n      }\n    }, {\n      key: \"changeLanguageDirection\",\n      value: function changeLanguageDirection(direction) {\n        var swiper = this;\n        if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n        swiper.rtl = direction === 'rtl';\n        swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n        if (swiper.rtl) {\n          swiper.$el.addClass(\"\".concat(swiper.params.containerModifierClass, \"rtl\"));\n          swiper.el.dir = 'rtl';\n        } else {\n          swiper.$el.removeClass(\"\".concat(swiper.params.containerModifierClass, \"rtl\"));\n          swiper.el.dir = 'ltr';\n        }\n\n        swiper.update();\n      }\n    }, {\n      key: \"mount\",\n      value: function mount(el) {\n        var swiper = this;\n        if (swiper.mounted) return true; // Find el\n\n        var $el = $(el || swiper.params.el);\n        el = $el[0];\n\n        if (!el) {\n          return false;\n        }\n\n        el.swiper = swiper;\n\n        var getWrapperSelector = function getWrapperSelector() {\n          return \".\".concat((swiper.params.wrapperClass || '').trim().split(' ').join('.'));\n        };\n\n        var getWrapper = function getWrapper() {\n          if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n            var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n            res.children = function (options) {\n              return $el.children(options);\n            };\n\n            return res;\n          }\n\n          if (!$el.children) {\n            return $($el).children(getWrapperSelector());\n          }\n\n          return $el.children(getWrapperSelector());\n        }; // Find Wrapper\n\n\n        var $wrapperEl = getWrapper();\n\n        if ($wrapperEl.length === 0 && swiper.params.createElements) {\n          var _document2 = getDocument();\n\n          var wrapper = _document2.createElement('div');\n\n          $wrapperEl = $(wrapper);\n          wrapper.className = swiper.params.wrapperClass;\n          $el.append(wrapper);\n          $el.children(\".\".concat(swiper.params.slideClass)).each(function (slideEl) {\n            $wrapperEl.append(slideEl);\n          });\n        }\n\n        Object.assign(swiper, {\n          $el: $el,\n          el: el,\n          $wrapperEl: $wrapperEl,\n          wrapperEl: $wrapperEl[0],\n          mounted: true,\n          // RTL\n          rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n          rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n          wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n        });\n        return true;\n      }\n    }, {\n      key: \"init\",\n      value: function init(el) {\n        var swiper = this;\n        if (swiper.initialized) return swiper;\n        var mounted = swiper.mount(el);\n        if (mounted === false) return swiper;\n        swiper.emit('beforeInit'); // Set breakpoint\n\n        if (swiper.params.breakpoints) {\n          swiper.setBreakpoint();\n        } // Add Classes\n\n\n        swiper.addClasses(); // Create loop\n\n        if (swiper.params.loop) {\n          swiper.loopCreate();\n        } // Update size\n\n\n        swiper.updateSize(); // Update slides\n\n        swiper.updateSlides();\n\n        if (swiper.params.watchOverflow) {\n          swiper.checkOverflow();\n        } // Set Grab Cursor\n\n\n        if (swiper.params.grabCursor && swiper.enabled) {\n          swiper.setGrabCursor();\n        }\n\n        if (swiper.params.preloadImages) {\n          swiper.preloadImages();\n        } // Slide To Initial Slide\n\n\n        if (swiper.params.loop) {\n          swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n        } else {\n          swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n        } // Attach events\n\n\n        swiper.attachEvents(); // Init Flag\n\n        swiper.initialized = true; // Emit\n\n        swiper.emit('init');\n        swiper.emit('afterInit');\n        return swiper;\n      }\n    }, {\n      key: \"destroy\",\n      value: function destroy(deleteInstance, cleanStyles) {\n        if (deleteInstance === void 0) {\n          deleteInstance = true;\n        }\n\n        if (cleanStyles === void 0) {\n          cleanStyles = true;\n        }\n\n        var swiper = this;\n        var params = swiper.params,\n            $el = swiper.$el,\n            $wrapperEl = swiper.$wrapperEl,\n            slides = swiper.slides;\n\n        if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n          return null;\n        }\n\n        swiper.emit('beforeDestroy'); // Init Flag\n\n        swiper.initialized = false; // Detach events\n\n        swiper.detachEvents(); // Destroy loop\n\n        if (params.loop) {\n          swiper.loopDestroy();\n        } // Cleanup styles\n\n\n        if (cleanStyles) {\n          swiper.removeClasses();\n          $el.removeAttr('style');\n          $wrapperEl.removeAttr('style');\n\n          if (slides && slides.length) {\n            slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n          }\n        }\n\n        swiper.emit('destroy'); // Detach emitter events\n\n        Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n          swiper.off(eventName);\n        });\n\n        if (deleteInstance !== false) {\n          swiper.$el[0].swiper = null;\n          deleteProps(swiper);\n        }\n\n        swiper.destroyed = true;\n        return null;\n      }\n    }], [{\n      key: \"extendDefaults\",\n      value: function extendDefaults(newDefaults) {\n        extend(extendedDefaults, newDefaults);\n      }\n    }, {\n      key: \"extendedDefaults\",\n      get: function get() {\n        return extendedDefaults;\n      }\n    }, {\n      key: \"defaults\",\n      get: function get() {\n        return defaults;\n      }\n    }, {\n      key: \"installModule\",\n      value: function installModule(mod) {\n        if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n        var modules = Swiper.prototype.__modules__;\n\n        if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n          modules.push(mod);\n        }\n      }\n    }, {\n      key: \"use\",\n      value: function use(module) {\n        if (Array.isArray(module)) {\n          module.forEach(function (m) {\n            return Swiper.installModule(m);\n          });\n          return Swiper;\n        }\n\n        Swiper.installModule(module);\n        return Swiper;\n      }\n    }]);\n\n    return Swiper;\n  }();\n\n  Object.keys(prototypes).forEach(function (prototypeGroup) {\n    Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n      Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n    });\n  });\n  Swiper.use([Resize, Observer]);\n\n  function Virtual(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    extendParams({\n      virtual: {\n        enabled: false,\n        slides: [],\n        cache: true,\n        renderSlide: null,\n        renderExternal: null,\n        renderExternalUpdate: true,\n        addSlidesBefore: 0,\n        addSlidesAfter: 0\n      }\n    });\n    var cssModeTimeout;\n    swiper.virtual = {\n      cache: {},\n      from: undefined,\n      to: undefined,\n      slides: [],\n      offset: 0,\n      slidesGrid: []\n    };\n\n    function renderSlide(slide, index) {\n      var params = swiper.params.virtual;\n\n      if (params.cache && swiper.virtual.cache[index]) {\n        return swiper.virtual.cache[index];\n      }\n\n      var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"<div class=\\\"\".concat(swiper.params.slideClass, \"\\\" data-swiper-slide-index=\\\"\").concat(index, \"\\\">\").concat(slide, \"</div>\"));\n      if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n      if (params.cache) swiper.virtual.cache[index] = $slideEl;\n      return $slideEl;\n    }\n\n    function update(force) {\n      var _swiper$params = swiper.params,\n          slidesPerView = _swiper$params.slidesPerView,\n          slidesPerGroup = _swiper$params.slidesPerGroup,\n          centeredSlides = _swiper$params.centeredSlides;\n      var _swiper$params$virtua = swiper.params.virtual,\n          addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n          addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n      var _swiper$virtual = swiper.virtual,\n          previousFrom = _swiper$virtual.from,\n          previousTo = _swiper$virtual.to,\n          slides = _swiper$virtual.slides,\n          previousSlidesGrid = _swiper$virtual.slidesGrid,\n          previousOffset = _swiper$virtual.offset;\n\n      if (!swiper.params.cssMode) {\n        swiper.updateActiveIndex();\n      }\n\n      var activeIndex = swiper.activeIndex || 0;\n      var offsetProp;\n      if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n      var slidesAfter;\n      var slidesBefore;\n\n      if (centeredSlides) {\n        slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n        slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n      } else {\n        slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n        slidesBefore = slidesPerGroup + addSlidesBefore;\n      }\n\n      var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n      var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n      var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n      Object.assign(swiper.virtual, {\n        from: from,\n        to: to,\n        offset: offset,\n        slidesGrid: swiper.slidesGrid\n      });\n\n      function onRendered() {\n        swiper.updateSlides();\n        swiper.updateProgress();\n        swiper.updateSlidesClasses();\n\n        if (swiper.lazy && swiper.params.lazy.enabled) {\n          swiper.lazy.load();\n        }\n\n        emit('virtualUpdate');\n      }\n\n      if (previousFrom === from && previousTo === to && !force) {\n        if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n          swiper.slides.css(offsetProp, \"\".concat(offset, \"px\"));\n        }\n\n        swiper.updateProgress();\n        emit('virtualUpdate');\n        return;\n      }\n\n      if (swiper.params.virtual.renderExternal) {\n        swiper.params.virtual.renderExternal.call(swiper, {\n          offset: offset,\n          from: from,\n          to: to,\n          slides: function getSlides() {\n            var slidesToRender = [];\n\n            for (var i = from; i <= to; i += 1) {\n              slidesToRender.push(slides[i]);\n            }\n\n            return slidesToRender;\n          }()\n        });\n\n        if (swiper.params.virtual.renderExternalUpdate) {\n          onRendered();\n        } else {\n          emit('virtualUpdate');\n        }\n\n        return;\n      }\n\n      var prependIndexes = [];\n      var appendIndexes = [];\n\n      if (force) {\n        swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass)).remove();\n      } else {\n        for (var i = previousFrom; i <= previousTo; i += 1) {\n          if (i < from || i > to) {\n            swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(i, \"\\\"]\")).remove();\n          }\n        }\n      }\n\n      for (var _i8 = 0; _i8 < slides.length; _i8 += 1) {\n        if (_i8 >= from && _i8 <= to) {\n          if (typeof previousTo === 'undefined' || force) {\n            appendIndexes.push(_i8);\n          } else {\n            if (_i8 > previousTo) appendIndexes.push(_i8);\n            if (_i8 < previousFrom) prependIndexes.push(_i8);\n          }\n        }\n      }\n\n      appendIndexes.forEach(function (index) {\n        swiper.$wrapperEl.append(renderSlide(slides[index], index));\n      });\n      prependIndexes.sort(function (a, b) {\n        return b - a;\n      }).forEach(function (index) {\n        swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n      });\n      swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, \"\".concat(offset, \"px\"));\n      onRendered();\n    }\n\n    function appendSlide(slides) {\n      if (_typeof(slides) === 'object' && 'length' in slides) {\n        for (var i = 0; i < slides.length; i += 1) {\n          if (slides[i]) swiper.virtual.slides.push(slides[i]);\n        }\n      } else {\n        swiper.virtual.slides.push(slides);\n      }\n\n      update(true);\n    }\n\n    function prependSlide(slides) {\n      var activeIndex = swiper.activeIndex;\n      var newActiveIndex = activeIndex + 1;\n      var numberOfNewSlides = 1;\n\n      if (Array.isArray(slides)) {\n        for (var i = 0; i < slides.length; i += 1) {\n          if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n        }\n\n        newActiveIndex = activeIndex + slides.length;\n        numberOfNewSlides = slides.length;\n      } else {\n        swiper.virtual.slides.unshift(slides);\n      }\n\n      if (swiper.params.virtual.cache) {\n        var cache = swiper.virtual.cache;\n        var newCache = {};\n        Object.keys(cache).forEach(function (cachedIndex) {\n          var $cachedEl = cache[cachedIndex];\n          var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n          if (cachedElIndex) {\n            $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n          }\n\n          newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n        });\n        swiper.virtual.cache = newCache;\n      }\n\n      update(true);\n      swiper.slideTo(newActiveIndex, 0);\n    }\n\n    function removeSlide(slidesIndexes) {\n      if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n      var activeIndex = swiper.activeIndex;\n\n      if (Array.isArray(slidesIndexes)) {\n        for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n          swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n          if (swiper.params.virtual.cache) {\n            delete swiper.virtual.cache[slidesIndexes[i]];\n          }\n\n          if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n          activeIndex = Math.max(activeIndex, 0);\n        }\n      } else {\n        swiper.virtual.slides.splice(slidesIndexes, 1);\n\n        if (swiper.params.virtual.cache) {\n          delete swiper.virtual.cache[slidesIndexes];\n        }\n\n        if (slidesIndexes < activeIndex) activeIndex -= 1;\n        activeIndex = Math.max(activeIndex, 0);\n      }\n\n      update(true);\n      swiper.slideTo(activeIndex, 0);\n    }\n\n    function removeAllSlides() {\n      swiper.virtual.slides = [];\n\n      if (swiper.params.virtual.cache) {\n        swiper.virtual.cache = {};\n      }\n\n      update(true);\n      swiper.slideTo(0, 0);\n    }\n\n    on('beforeInit', function () {\n      if (!swiper.params.virtual.enabled) return;\n      swiper.virtual.slides = swiper.params.virtual.slides;\n      swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"virtual\"));\n      swiper.params.watchSlidesProgress = true;\n      swiper.originalParams.watchSlidesProgress = true;\n\n      if (!swiper.params.initialSlide) {\n        update();\n      }\n    });\n    on('setTranslate', function () {\n      if (!swiper.params.virtual.enabled) return;\n\n      if (swiper.params.cssMode && !swiper._immediateVirtual) {\n        clearTimeout(cssModeTimeout);\n        cssModeTimeout = setTimeout(function () {\n          update();\n        }, 100);\n      } else {\n        update();\n      }\n    });\n    on('init update resize', function () {\n      if (!swiper.params.virtual.enabled) return;\n\n      if (swiper.params.cssMode) {\n        setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', \"\".concat(swiper.virtualSize, \"px\"));\n      }\n    });\n    Object.assign(swiper.virtual, {\n      appendSlide: appendSlide,\n      prependSlide: prependSlide,\n      removeSlide: removeSlide,\n      removeAllSlides: removeAllSlides,\n      update: update\n    });\n  }\n  /* eslint-disable consistent-return */\n\n\n  function Keyboard(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    var document = getDocument();\n    var window = getWindow();\n    swiper.keyboard = {\n      enabled: false\n    };\n    extendParams({\n      keyboard: {\n        enabled: false,\n        onlyInViewport: true,\n        pageUpDown: true\n      }\n    });\n\n    function handle(event) {\n      if (!swiper.enabled) return;\n      var rtl = swiper.rtlTranslate;\n      var e = event;\n      if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n      var kc = e.keyCode || e.charCode;\n      var pageUpDown = swiper.params.keyboard.pageUpDown;\n      var isPageUp = pageUpDown && kc === 33;\n      var isPageDown = pageUpDown && kc === 34;\n      var isArrowLeft = kc === 37;\n      var isArrowRight = kc === 39;\n      var isArrowUp = kc === 38;\n      var isArrowDown = kc === 40; // Directions locks\n\n      if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n        return false;\n      }\n\n      if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n        return false;\n      }\n\n      if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n        return undefined;\n      }\n\n      if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n        return undefined;\n      }\n\n      if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n        var inView = false; // Check that swiper should be inside of visible area of window\n\n        if (swiper.$el.parents(\".\".concat(swiper.params.slideClass)).length > 0 && swiper.$el.parents(\".\".concat(swiper.params.slideActiveClass)).length === 0) {\n          return undefined;\n        }\n\n        var $el = swiper.$el;\n        var swiperWidth = $el[0].clientWidth;\n        var swiperHeight = $el[0].clientHeight;\n        var windowWidth = window.innerWidth;\n        var windowHeight = window.innerHeight;\n        var swiperOffset = swiper.$el.offset();\n        if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n        var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n        for (var i = 0; i < swiperCoord.length; i += 1) {\n          var point = swiperCoord[i];\n\n          if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n            if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n            inView = true;\n          }\n        }\n\n        if (!inView) return undefined;\n      }\n\n      if (swiper.isHorizontal()) {\n        if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n          if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n        }\n\n        if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n        if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n      } else {\n        if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n          if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n        }\n\n        if (isPageDown || isArrowDown) swiper.slideNext();\n        if (isPageUp || isArrowUp) swiper.slidePrev();\n      }\n\n      emit('keyPress', kc);\n      return undefined;\n    }\n\n    function enable() {\n      if (swiper.keyboard.enabled) return;\n      $(document).on('keydown', handle);\n      swiper.keyboard.enabled = true;\n    }\n\n    function disable() {\n      if (!swiper.keyboard.enabled) return;\n      $(document).off('keydown', handle);\n      swiper.keyboard.enabled = false;\n    }\n\n    on('init', function () {\n      if (swiper.params.keyboard.enabled) {\n        enable();\n      }\n    });\n    on('destroy', function () {\n      if (swiper.keyboard.enabled) {\n        disable();\n      }\n    });\n    Object.assign(swiper.keyboard, {\n      enable: enable,\n      disable: disable\n    });\n  }\n  /* eslint-disable consistent-return */\n\n\n  function Mousewheel(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    var window = getWindow();\n    extendParams({\n      mousewheel: {\n        enabled: false,\n        releaseOnEdges: false,\n        invert: false,\n        forceToAxis: false,\n        sensitivity: 1,\n        eventsTarget: 'container',\n        thresholdDelta: null,\n        thresholdTime: null\n      }\n    });\n    swiper.mousewheel = {\n      enabled: false\n    };\n    var timeout;\n    var lastScrollTime = now();\n    var lastEventBeforeSnap;\n    var recentWheelEvents = [];\n\n    function normalize(e) {\n      // Reasonable defaults\n      var PIXEL_STEP = 10;\n      var LINE_HEIGHT = 40;\n      var PAGE_HEIGHT = 800;\n      var sX = 0;\n      var sY = 0; // spinX, spinY\n\n      var pX = 0;\n      var pY = 0; // pixelX, pixelY\n      // Legacy\n\n      if ('detail' in e) {\n        sY = e.detail;\n      }\n\n      if ('wheelDelta' in e) {\n        sY = -e.wheelDelta / 120;\n      }\n\n      if ('wheelDeltaY' in e) {\n        sY = -e.wheelDeltaY / 120;\n      }\n\n      if ('wheelDeltaX' in e) {\n        sX = -e.wheelDeltaX / 120;\n      } // side scrolling on FF with DOMMouseScroll\n\n\n      if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n        sX = sY;\n        sY = 0;\n      }\n\n      pX = sX * PIXEL_STEP;\n      pY = sY * PIXEL_STEP;\n\n      if ('deltaY' in e) {\n        pY = e.deltaY;\n      }\n\n      if ('deltaX' in e) {\n        pX = e.deltaX;\n      }\n\n      if (e.shiftKey && !pX) {\n        // if user scrolls with shift he wants horizontal scroll\n        pX = pY;\n        pY = 0;\n      }\n\n      if ((pX || pY) && e.deltaMode) {\n        if (e.deltaMode === 1) {\n          // delta in LINE units\n          pX *= LINE_HEIGHT;\n          pY *= LINE_HEIGHT;\n        } else {\n          // delta in PAGE units\n          pX *= PAGE_HEIGHT;\n          pY *= PAGE_HEIGHT;\n        }\n      } // Fall-back if spin cannot be determined\n\n\n      if (pX && !sX) {\n        sX = pX < 1 ? -1 : 1;\n      }\n\n      if (pY && !sY) {\n        sY = pY < 1 ? -1 : 1;\n      }\n\n      return {\n        spinX: sX,\n        spinY: sY,\n        pixelX: pX,\n        pixelY: pY\n      };\n    }\n\n    function handleMouseEnter() {\n      if (!swiper.enabled) return;\n      swiper.mouseEntered = true;\n    }\n\n    function handleMouseLeave() {\n      if (!swiper.enabled) return;\n      swiper.mouseEntered = false;\n    }\n\n    function animateSlider(newEvent) {\n      if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n        // Prevent if delta of wheel scroll delta is below configured threshold\n        return false;\n      }\n\n      if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n        // Prevent if time between scrolls is below configured threshold\n        return false;\n      } // If the movement is NOT big enough and\n      // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n      //   Don't go any further (avoid insignificant scroll movement).\n\n\n      if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n        // Return false as a default\n        return true;\n      } // If user is scrolling towards the end:\n      //   If the slider hasn't hit the latest slide or\n      //   if the slider is a loop and\n      //   if the slider isn't moving right now:\n      //     Go to next slide and\n      //     emit a scroll event.\n      // Else (the user is scrolling towards the beginning) and\n      // if the slider hasn't hit the first slide or\n      // if the slider is a loop and\n      // if the slider isn't moving right now:\n      //   Go to prev slide and\n      //   emit a scroll event.\n\n\n      if (newEvent.direction < 0) {\n        if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n          swiper.slideNext();\n          emit('scroll', newEvent.raw);\n        }\n      } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n        swiper.slidePrev();\n        emit('scroll', newEvent.raw);\n      } // If you got here is because an animation has been triggered so store the current time\n\n\n      lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n      return false;\n    }\n\n    function releaseScroll(newEvent) {\n      var params = swiper.params.mousewheel;\n\n      if (newEvent.direction < 0) {\n        if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n          // Return true to animate scroll on edges\n          return true;\n        }\n      } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n        // Return true to animate scroll on edges\n        return true;\n      }\n\n      return false;\n    }\n\n    function handle(event) {\n      var e = event;\n      var disableParentSwiper = true;\n      if (!swiper.enabled) return;\n      var params = swiper.params.mousewheel;\n\n      if (swiper.params.cssMode) {\n        e.preventDefault();\n      }\n\n      var target = swiper.$el;\n\n      if (swiper.params.mousewheel.eventsTarget !== 'container') {\n        target = $(swiper.params.mousewheel.eventsTarget);\n      }\n\n      if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n      if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n      var delta = 0;\n      var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n      var data = normalize(e);\n\n      if (params.forceToAxis) {\n        if (swiper.isHorizontal()) {\n          if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n        } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n      } else {\n        delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n      }\n\n      if (delta === 0) return true;\n      if (params.invert) delta = -delta; // Get the scroll positions\n\n      var positions = swiper.getTranslate() + delta * params.sensitivity;\n      if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n      if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n      //     the disableParentSwiper will be true.\n      // When loop is false:\n      //     if the scroll positions is not on edge,\n      //     then the disableParentSwiper will be true.\n      //     if the scroll on edge positions,\n      //     then the disableParentSwiper will be false.\n\n      disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n      if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n      if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n        // Register the new event in a variable which stores the relevant data\n        var newEvent = {\n          time: now(),\n          delta: Math.abs(delta),\n          direction: Math.sign(delta),\n          raw: event\n        }; // Keep the most recent events\n\n        if (recentWheelEvents.length >= 2) {\n          recentWheelEvents.shift(); // only store the last N events\n        }\n\n        var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n        recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n        //   If direction has changed or\n        //   if the scroll is quicker than the previous one:\n        //     Animate the slider.\n        // Else (this is the first time the wheel is moved):\n        //     Animate the slider.\n\n        if (prevEvent) {\n          if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n            animateSlider(newEvent);\n          }\n        } else {\n          animateSlider(newEvent);\n        } // If it's time to release the scroll:\n        //   Return now so you don't hit the preventDefault.\n\n\n        if (releaseScroll(newEvent)) {\n          return true;\n        }\n      } else {\n        // Freemode or scrollContainer:\n        // If we recently snapped after a momentum scroll, then ignore wheel events\n        // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n        // or if it's a new scroll (larger delta or inverse sign as last event before\n        // an end-of-momentum snap).\n        var _newEvent = {\n          time: now(),\n          delta: Math.abs(delta),\n          direction: Math.sign(delta)\n        };\n        var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n        if (!ignoreWheelEvents) {\n          lastEventBeforeSnap = undefined;\n\n          if (swiper.params.loop) {\n            swiper.loopFix();\n          }\n\n          var position = swiper.getTranslate() + delta * params.sensitivity;\n          var wasBeginning = swiper.isBeginning;\n          var wasEnd = swiper.isEnd;\n          if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n          if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n          swiper.setTransition(0);\n          swiper.setTranslate(position);\n          swiper.updateProgress();\n          swiper.updateActiveIndex();\n          swiper.updateSlidesClasses();\n\n          if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n            swiper.updateSlidesClasses();\n          }\n\n          if (swiper.params.freeMode.sticky) {\n            // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n            // the end of a momentum scroll by storing recent (N=15?) wheel events.\n            // 1. do all N events have decreasing or same (absolute value) delta?\n            // 2. did all N events arrive in the last M (M=500?) msecs?\n            // 3. does the earliest event have an (absolute value) delta that's\n            //    at least P (P=1?) larger than the most recent event's delta?\n            // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n            // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n            // Snap immediately and ignore remaining wheel events in this scroll.\n            // See comment above for \"remaining wheel events in this scroll\" determination.\n            // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n            clearTimeout(timeout);\n            timeout = undefined;\n\n            if (recentWheelEvents.length >= 15) {\n              recentWheelEvents.shift(); // only store the last N events\n            }\n\n            var _prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n\n            var firstEvent = recentWheelEvents[0];\n            recentWheelEvents.push(_newEvent);\n\n            if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n              // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n              recentWheelEvents.splice(0);\n            } else if (recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n              // We're at the end of the deceleration of a momentum scroll, so there's no need\n              // to wait for more events. Snap ASAP on the next tick.\n              // Also, because there's some remaining momentum we'll bias the snap in the\n              // direction of the ongoing scroll because it's better UX for the scroll to snap\n              // in the same direction as the scroll instead of reversing to snap.  Therefore,\n              // if it's already scrolled more than 20% in the current direction, keep going.\n              var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n              lastEventBeforeSnap = _newEvent;\n              recentWheelEvents.splice(0);\n              timeout = nextTick(function () {\n                swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n              }, 0); // no delay; move on next tick\n            }\n\n            if (!timeout) {\n              // if we get here, then we haven't detected the end of a momentum scroll, so\n              // we'll consider a scroll \"complete\" when there haven't been any wheel events\n              // for 500ms.\n              timeout = nextTick(function () {\n                var snapToThreshold = 0.5;\n                lastEventBeforeSnap = _newEvent;\n                recentWheelEvents.splice(0);\n                swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n              }, 500);\n            }\n          } // Emit event\n\n\n          if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n          if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n          if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n        }\n      }\n\n      if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      return false;\n    }\n\n    function events(method) {\n      var target = swiper.$el;\n\n      if (swiper.params.mousewheel.eventsTarget !== 'container') {\n        target = $(swiper.params.mousewheel.eventsTarget);\n      }\n\n      target[method]('mouseenter', handleMouseEnter);\n      target[method]('mouseleave', handleMouseLeave);\n      target[method]('wheel', handle);\n    }\n\n    function enable() {\n      if (swiper.params.cssMode) {\n        swiper.wrapperEl.removeEventListener('wheel', handle);\n        return true;\n      }\n\n      if (swiper.mousewheel.enabled) return false;\n      events('on');\n      swiper.mousewheel.enabled = true;\n      return true;\n    }\n\n    function disable() {\n      if (swiper.params.cssMode) {\n        swiper.wrapperEl.addEventListener(event, handle);\n        return true;\n      }\n\n      if (!swiper.mousewheel.enabled) return false;\n      events('off');\n      swiper.mousewheel.enabled = false;\n      return true;\n    }\n\n    on('init', function () {\n      if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n        disable();\n      }\n\n      if (swiper.params.mousewheel.enabled) enable();\n    });\n    on('destroy', function () {\n      if (swiper.params.cssMode) {\n        enable();\n      }\n\n      if (swiper.mousewheel.enabled) disable();\n    });\n    Object.assign(swiper.mousewheel, {\n      enable: enable,\n      disable: disable\n    });\n  }\n\n  function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n    var document = getDocument();\n\n    if (swiper.params.createElements) {\n      Object.keys(checkProps).forEach(function (key) {\n        if (!params[key] && params.auto === true) {\n          var element = swiper.$el.children(\".\".concat(checkProps[key]))[0];\n\n          if (!element) {\n            element = document.createElement('div');\n            element.className = checkProps[key];\n            swiper.$el.append(element);\n          }\n\n          params[key] = element;\n          originalParams[key] = element;\n        }\n      });\n    }\n\n    return params;\n  }\n\n  function Navigation(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    extendParams({\n      navigation: {\n        nextEl: null,\n        prevEl: null,\n        hideOnClick: false,\n        disabledClass: 'swiper-button-disabled',\n        hiddenClass: 'swiper-button-hidden',\n        lockClass: 'swiper-button-lock',\n        navigationDisabledClass: 'swiper-navigation-disabled'\n      }\n    });\n    swiper.navigation = {\n      nextEl: null,\n      $nextEl: null,\n      prevEl: null,\n      $prevEl: null\n    };\n\n    function getEl(el) {\n      var $el;\n\n      if (el) {\n        $el = $(el);\n\n        if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n          $el = swiper.$el.find(el);\n        }\n      }\n\n      return $el;\n    }\n\n    function toggleEl($el, disabled) {\n      var params = swiper.params.navigation;\n\n      if ($el && $el.length > 0) {\n        $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n        if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n        if (swiper.params.watchOverflow && swiper.enabled) {\n          $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n        }\n      }\n    }\n\n    function update() {\n      // Update Navigation Buttons\n      if (swiper.params.loop) return;\n      var _swiper$navigation = swiper.navigation,\n          $nextEl = _swiper$navigation.$nextEl,\n          $prevEl = _swiper$navigation.$prevEl;\n      toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n      toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n    }\n\n    function onPrevClick(e) {\n      e.preventDefault();\n      if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n      swiper.slidePrev();\n      emit('navigationPrev');\n    }\n\n    function onNextClick(e) {\n      e.preventDefault();\n      if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n      swiper.slideNext();\n      emit('navigationNext');\n    }\n\n    function init() {\n      var params = swiper.params.navigation;\n      swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n        nextEl: 'swiper-button-next',\n        prevEl: 'swiper-button-prev'\n      });\n      if (!(params.nextEl || params.prevEl)) return;\n      var $nextEl = getEl(params.nextEl);\n      var $prevEl = getEl(params.prevEl);\n\n      if ($nextEl && $nextEl.length > 0) {\n        $nextEl.on('click', onNextClick);\n      }\n\n      if ($prevEl && $prevEl.length > 0) {\n        $prevEl.on('click', onPrevClick);\n      }\n\n      Object.assign(swiper.navigation, {\n        $nextEl: $nextEl,\n        nextEl: $nextEl && $nextEl[0],\n        $prevEl: $prevEl,\n        prevEl: $prevEl && $prevEl[0]\n      });\n\n      if (!swiper.enabled) {\n        if ($nextEl) $nextEl.addClass(params.lockClass);\n        if ($prevEl) $prevEl.addClass(params.lockClass);\n      }\n    }\n\n    function destroy() {\n      var _swiper$navigation2 = swiper.navigation,\n          $nextEl = _swiper$navigation2.$nextEl,\n          $prevEl = _swiper$navigation2.$prevEl;\n\n      if ($nextEl && $nextEl.length) {\n        $nextEl.off('click', onNextClick);\n        $nextEl.removeClass(swiper.params.navigation.disabledClass);\n      }\n\n      if ($prevEl && $prevEl.length) {\n        $prevEl.off('click', onPrevClick);\n        $prevEl.removeClass(swiper.params.navigation.disabledClass);\n      }\n    }\n\n    on('init', function () {\n      if (swiper.params.navigation.enabled === false) {\n        // eslint-disable-next-line\n        disable();\n      } else {\n        init();\n        update();\n      }\n    });\n    on('toEdge fromEdge lock unlock', function () {\n      update();\n    });\n    on('destroy', function () {\n      destroy();\n    });\n    on('enable disable', function () {\n      var _swiper$navigation3 = swiper.navigation,\n          $nextEl = _swiper$navigation3.$nextEl,\n          $prevEl = _swiper$navigation3.$prevEl;\n\n      if ($nextEl) {\n        $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n      }\n\n      if ($prevEl) {\n        $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n      }\n    });\n    on('click', function (_s, e) {\n      var _swiper$navigation4 = swiper.navigation,\n          $nextEl = _swiper$navigation4.$nextEl,\n          $prevEl = _swiper$navigation4.$prevEl;\n      var targetEl = e.target;\n\n      if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n        if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n        var isHidden;\n\n        if ($nextEl) {\n          isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n        } else if ($prevEl) {\n          isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n        }\n\n        if (isHidden === true) {\n          emit('navigationShow');\n        } else {\n          emit('navigationHide');\n        }\n\n        if ($nextEl) {\n          $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n        }\n\n        if ($prevEl) {\n          $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n        }\n      }\n    });\n\n    var enable = function enable() {\n      swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n      init();\n      update();\n    };\n\n    var disable = function disable() {\n      swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n      destroy();\n    };\n\n    Object.assign(swiper.navigation, {\n      enable: enable,\n      disable: disable,\n      update: update,\n      init: init,\n      destroy: destroy\n    });\n  }\n\n  function classesToSelector(classes) {\n    if (classes === void 0) {\n      classes = '';\n    }\n\n    return \".\".concat(classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n    .replace(/ /g, '.'));\n  }\n\n  function Pagination(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    var pfx = 'swiper-pagination';\n    extendParams({\n      pagination: {\n        el: null,\n        bulletElement: 'span',\n        clickable: false,\n        hideOnClick: false,\n        renderBullet: null,\n        renderProgressbar: null,\n        renderFraction: null,\n        renderCustom: null,\n        progressbarOpposite: false,\n        type: 'bullets',\n        // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n        dynamicBullets: false,\n        dynamicMainBullets: 1,\n        formatFractionCurrent: function formatFractionCurrent(number) {\n          return number;\n        },\n        formatFractionTotal: function formatFractionTotal(number) {\n          return number;\n        },\n        bulletClass: \"\".concat(pfx, \"-bullet\"),\n        bulletActiveClass: \"\".concat(pfx, \"-bullet-active\"),\n        modifierClass: \"\".concat(pfx, \"-\"),\n        currentClass: \"\".concat(pfx, \"-current\"),\n        totalClass: \"\".concat(pfx, \"-total\"),\n        hiddenClass: \"\".concat(pfx, \"-hidden\"),\n        progressbarFillClass: \"\".concat(pfx, \"-progressbar-fill\"),\n        progressbarOppositeClass: \"\".concat(pfx, \"-progressbar-opposite\"),\n        clickableClass: \"\".concat(pfx, \"-clickable\"),\n        lockClass: \"\".concat(pfx, \"-lock\"),\n        horizontalClass: \"\".concat(pfx, \"-horizontal\"),\n        verticalClass: \"\".concat(pfx, \"-vertical\"),\n        paginationDisabledClass: \"\".concat(pfx, \"-disabled\")\n      }\n    });\n    swiper.pagination = {\n      el: null,\n      $el: null,\n      bullets: []\n    };\n    var bulletSize;\n    var dynamicBulletIndex = 0;\n\n    function isPaginationDisabled() {\n      return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n    }\n\n    function setSideBullets($bulletEl, position) {\n      var bulletActiveClass = swiper.params.pagination.bulletActiveClass;\n      $bulletEl[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position))[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position, \"-\").concat(position));\n    }\n\n    function update() {\n      // Render || Update Pagination bullets/items\n      var rtl = swiper.rtl;\n      var params = swiper.params.pagination;\n      if (isPaginationDisabled()) return;\n      var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n      var $el = swiper.pagination.$el; // Current/Total\n\n      var current;\n      var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n      if (swiper.params.loop) {\n        current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n        if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n          current -= slidesLength - swiper.loopedSlides * 2;\n        }\n\n        if (current > total - 1) current -= total;\n        if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n      } else if (typeof swiper.snapIndex !== 'undefined') {\n        current = swiper.snapIndex;\n      } else {\n        current = swiper.activeIndex || 0;\n      } // Types\n\n\n      if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n        var bullets = swiper.pagination.bullets;\n        var firstIndex;\n        var lastIndex;\n        var midIndex;\n\n        if (params.dynamicBullets) {\n          bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n          $el.css(swiper.isHorizontal() ? 'width' : 'height', \"\".concat(bulletSize * (params.dynamicMainBullets + 4), \"px\"));\n\n          if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n            dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n            if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n              dynamicBulletIndex = params.dynamicMainBullets - 1;\n            } else if (dynamicBulletIndex < 0) {\n              dynamicBulletIndex = 0;\n            }\n          }\n\n          firstIndex = Math.max(current - dynamicBulletIndex, 0);\n          lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n          midIndex = (lastIndex + firstIndex) / 2;\n        }\n\n        bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(function (suffix) {\n          return \"\".concat(params.bulletActiveClass).concat(suffix);\n        }).join(' '));\n\n        if ($el.length > 1) {\n          bullets.each(function (bullet) {\n            var $bullet = $(bullet);\n            var bulletIndex = $bullet.index();\n\n            if (bulletIndex === current) {\n              $bullet.addClass(params.bulletActiveClass);\n            }\n\n            if (params.dynamicBullets) {\n              if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n                $bullet.addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n              }\n\n              if (bulletIndex === firstIndex) {\n                setSideBullets($bullet, 'prev');\n              }\n\n              if (bulletIndex === lastIndex) {\n                setSideBullets($bullet, 'next');\n              }\n            }\n          });\n        } else {\n          var $bullet = bullets.eq(current);\n          var bulletIndex = $bullet.index();\n          $bullet.addClass(params.bulletActiveClass);\n\n          if (params.dynamicBullets) {\n            var $firstDisplayedBullet = bullets.eq(firstIndex);\n            var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n            for (var i = firstIndex; i <= lastIndex; i += 1) {\n              bullets.eq(i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n            }\n\n            if (swiper.params.loop) {\n              if (bulletIndex >= bullets.length) {\n                for (var _i9 = params.dynamicMainBullets; _i9 >= 0; _i9 -= 1) {\n                  bullets.eq(bullets.length - _i9).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n                }\n\n                bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(\"\".concat(params.bulletActiveClass, \"-prev\"));\n              } else {\n                setSideBullets($firstDisplayedBullet, 'prev');\n                setSideBullets($lastDisplayedBullet, 'next');\n              }\n            } else {\n              setSideBullets($firstDisplayedBullet, 'prev');\n              setSideBullets($lastDisplayedBullet, 'next');\n            }\n          }\n        }\n\n        if (params.dynamicBullets) {\n          var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n          var bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n          var offsetProp = rtl ? 'right' : 'left';\n          bullets.css(swiper.isHorizontal() ? offsetProp : 'top', \"\".concat(bulletsOffset, \"px\"));\n        }\n      }\n\n      if (params.type === 'fraction') {\n        $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n        $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n      }\n\n      if (params.type === 'progressbar') {\n        var progressbarDirection;\n\n        if (params.progressbarOpposite) {\n          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n        } else {\n          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n        }\n\n        var scale = (current + 1) / total;\n        var scaleX = 1;\n        var scaleY = 1;\n\n        if (progressbarDirection === 'horizontal') {\n          scaleX = scale;\n        } else {\n          scaleY = scale;\n        }\n\n        $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\")).transition(swiper.params.speed);\n      }\n\n      if (params.type === 'custom' && params.renderCustom) {\n        $el.html(params.renderCustom(swiper, current + 1, total));\n        emit('paginationRender', $el[0]);\n      } else {\n        emit('paginationUpdate', $el[0]);\n      }\n\n      if (swiper.params.watchOverflow && swiper.enabled) {\n        $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n      }\n    }\n\n    function render() {\n      // Render Container\n      var params = swiper.params.pagination;\n      if (isPaginationDisabled()) return;\n      var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n      var $el = swiper.pagination.$el;\n      var paginationHTML = '';\n\n      if (params.type === 'bullets') {\n        var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n        if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n          numberOfBullets = slidesLength;\n        }\n\n        for (var i = 0; i < numberOfBullets; i += 1) {\n          if (params.renderBullet) {\n            paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n          } else {\n            paginationHTML += \"<\".concat(params.bulletElement, \" class=\\\"\").concat(params.bulletClass, \"\\\"></\").concat(params.bulletElement, \">\");\n          }\n        }\n\n        $el.html(paginationHTML);\n        swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n      }\n\n      if (params.type === 'fraction') {\n        if (params.renderFraction) {\n          paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n        } else {\n          paginationHTML = \"<span class=\\\"\".concat(params.currentClass, \"\\\"></span>\") + ' / ' + \"<span class=\\\"\".concat(params.totalClass, \"\\\"></span>\");\n        }\n\n        $el.html(paginationHTML);\n      }\n\n      if (params.type === 'progressbar') {\n        if (params.renderProgressbar) {\n          paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n        } else {\n          paginationHTML = \"<span class=\\\"\".concat(params.progressbarFillClass, \"\\\"></span>\");\n        }\n\n        $el.html(paginationHTML);\n      }\n\n      if (params.type !== 'custom') {\n        emit('paginationRender', swiper.pagination.$el[0]);\n      }\n    }\n\n    function init() {\n      swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n        el: 'swiper-pagination'\n      });\n      var params = swiper.params.pagination;\n      if (!params.el) return;\n      var $el = $(params.el);\n      if ($el.length === 0) return;\n\n      if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n        $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n        if ($el.length > 1) {\n          $el = $el.filter(function (el) {\n            if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n            return true;\n          });\n        }\n      }\n\n      if (params.type === 'bullets' && params.clickable) {\n        $el.addClass(params.clickableClass);\n      }\n\n      $el.addClass(params.modifierClass + params.type);\n      $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n      if (params.type === 'bullets' && params.dynamicBullets) {\n        $el.addClass(\"\".concat(params.modifierClass).concat(params.type, \"-dynamic\"));\n        dynamicBulletIndex = 0;\n\n        if (params.dynamicMainBullets < 1) {\n          params.dynamicMainBullets = 1;\n        }\n      }\n\n      if (params.type === 'progressbar' && params.progressbarOpposite) {\n        $el.addClass(params.progressbarOppositeClass);\n      }\n\n      if (params.clickable) {\n        $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n          e.preventDefault();\n          var index = $(this).index() * swiper.params.slidesPerGroup;\n          if (swiper.params.loop) index += swiper.loopedSlides;\n          swiper.slideTo(index);\n        });\n      }\n\n      Object.assign(swiper.pagination, {\n        $el: $el,\n        el: $el[0]\n      });\n\n      if (!swiper.enabled) {\n        $el.addClass(params.lockClass);\n      }\n    }\n\n    function destroy() {\n      var params = swiper.params.pagination;\n      if (isPaginationDisabled()) return;\n      var $el = swiper.pagination.$el;\n      $el.removeClass(params.hiddenClass);\n      $el.removeClass(params.modifierClass + params.type);\n      $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n      if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n      if (params.clickable) {\n        $el.off('click', classesToSelector(params.bulletClass));\n      }\n    }\n\n    on('init', function () {\n      if (swiper.params.pagination.enabled === false) {\n        // eslint-disable-next-line\n        disable();\n      } else {\n        init();\n        render();\n        update();\n      }\n    });\n    on('activeIndexChange', function () {\n      if (swiper.params.loop) {\n        update();\n      } else if (typeof swiper.snapIndex === 'undefined') {\n        update();\n      }\n    });\n    on('snapIndexChange', function () {\n      if (!swiper.params.loop) {\n        update();\n      }\n    });\n    on('slidesLengthChange', function () {\n      if (swiper.params.loop) {\n        render();\n        update();\n      }\n    });\n    on('snapGridLengthChange', function () {\n      if (!swiper.params.loop) {\n        render();\n        update();\n      }\n    });\n    on('destroy', function () {\n      destroy();\n    });\n    on('enable disable', function () {\n      var $el = swiper.pagination.$el;\n\n      if ($el) {\n        $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n      }\n    });\n    on('lock unlock', function () {\n      update();\n    });\n    on('click', function (_s, e) {\n      var targetEl = e.target;\n      var $el = swiper.pagination.$el;\n\n      if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n        if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n        var isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n        if (isHidden === true) {\n          emit('paginationShow');\n        } else {\n          emit('paginationHide');\n        }\n\n        $el.toggleClass(swiper.params.pagination.hiddenClass);\n      }\n    });\n\n    var enable = function enable() {\n      swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n      if (swiper.pagination.$el) {\n        swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n      }\n\n      init();\n      render();\n      update();\n    };\n\n    var disable = function disable() {\n      swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n      if (swiper.pagination.$el) {\n        swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n      }\n\n      destroy();\n    };\n\n    Object.assign(swiper.pagination, {\n      enable: enable,\n      disable: disable,\n      render: render,\n      update: update,\n      init: init,\n      destroy: destroy\n    });\n  }\n\n  function Scrollbar(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    var document = getDocument();\n    var isTouched = false;\n    var timeout = null;\n    var dragTimeout = null;\n    var dragStartPos;\n    var dragSize;\n    var trackSize;\n    var divider;\n    extendParams({\n      scrollbar: {\n        el: null,\n        dragSize: 'auto',\n        hide: false,\n        draggable: false,\n        snapOnRelease: true,\n        lockClass: 'swiper-scrollbar-lock',\n        dragClass: 'swiper-scrollbar-drag',\n        scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n        horizontalClass: \"swiper-scrollbar-horizontal\",\n        verticalClass: \"swiper-scrollbar-vertical\"\n      }\n    });\n    swiper.scrollbar = {\n      el: null,\n      dragEl: null,\n      $el: null,\n      $dragEl: null\n    };\n\n    function setTranslate() {\n      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n      var scrollbar = swiper.scrollbar,\n          rtl = swiper.rtlTranslate,\n          progress = swiper.progress;\n      var $dragEl = scrollbar.$dragEl,\n          $el = scrollbar.$el;\n      var params = swiper.params.scrollbar;\n      var newSize = dragSize;\n      var newPos = (trackSize - dragSize) * progress;\n\n      if (rtl) {\n        newPos = -newPos;\n\n        if (newPos > 0) {\n          newSize = dragSize - newPos;\n          newPos = 0;\n        } else if (-newPos + dragSize > trackSize) {\n          newSize = trackSize + newPos;\n        }\n      } else if (newPos < 0) {\n        newSize = dragSize + newPos;\n        newPos = 0;\n      } else if (newPos + dragSize > trackSize) {\n        newSize = trackSize - newPos;\n      }\n\n      if (swiper.isHorizontal()) {\n        $dragEl.transform(\"translate3d(\".concat(newPos, \"px, 0, 0)\"));\n        $dragEl[0].style.width = \"\".concat(newSize, \"px\");\n      } else {\n        $dragEl.transform(\"translate3d(0px, \".concat(newPos, \"px, 0)\"));\n        $dragEl[0].style.height = \"\".concat(newSize, \"px\");\n      }\n\n      if (params.hide) {\n        clearTimeout(timeout);\n        $el[0].style.opacity = 1;\n        timeout = setTimeout(function () {\n          $el[0].style.opacity = 0;\n          $el.transition(400);\n        }, 1000);\n      }\n    }\n\n    function setTransition(duration) {\n      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n      swiper.scrollbar.$dragEl.transition(duration);\n    }\n\n    function updateSize() {\n      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n      var scrollbar = swiper.scrollbar;\n      var $dragEl = scrollbar.$dragEl,\n          $el = scrollbar.$el;\n      $dragEl[0].style.width = '';\n      $dragEl[0].style.height = '';\n      trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n      divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n      if (swiper.params.scrollbar.dragSize === 'auto') {\n        dragSize = trackSize * divider;\n      } else {\n        dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n      }\n\n      if (swiper.isHorizontal()) {\n        $dragEl[0].style.width = \"\".concat(dragSize, \"px\");\n      } else {\n        $dragEl[0].style.height = \"\".concat(dragSize, \"px\");\n      }\n\n      if (divider >= 1) {\n        $el[0].style.display = 'none';\n      } else {\n        $el[0].style.display = '';\n      }\n\n      if (swiper.params.scrollbar.hide) {\n        $el[0].style.opacity = 0;\n      }\n\n      if (swiper.params.watchOverflow && swiper.enabled) {\n        scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n      }\n    }\n\n    function getPointerPosition(e) {\n      if (swiper.isHorizontal()) {\n        return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n      }\n\n      return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n    }\n\n    function setDragPosition(e) {\n      var scrollbar = swiper.scrollbar,\n          rtl = swiper.rtlTranslate;\n      var $el = scrollbar.$el;\n      var positionRatio;\n      positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n      positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n      if (rtl) {\n        positionRatio = 1 - positionRatio;\n      }\n\n      var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n      swiper.updateProgress(position);\n      swiper.setTranslate(position);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n\n    function onDragStart(e) {\n      var params = swiper.params.scrollbar;\n      var scrollbar = swiper.scrollbar,\n          $wrapperEl = swiper.$wrapperEl;\n      var $el = scrollbar.$el,\n          $dragEl = scrollbar.$dragEl;\n      isTouched = true;\n      dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n      e.preventDefault();\n      e.stopPropagation();\n      $wrapperEl.transition(100);\n      $dragEl.transition(100);\n      setDragPosition(e);\n      clearTimeout(dragTimeout);\n      $el.transition(0);\n\n      if (params.hide) {\n        $el.css('opacity', 1);\n      }\n\n      if (swiper.params.cssMode) {\n        swiper.$wrapperEl.css('scroll-snap-type', 'none');\n      }\n\n      emit('scrollbarDragStart', e);\n    }\n\n    function onDragMove(e) {\n      var scrollbar = swiper.scrollbar,\n          $wrapperEl = swiper.$wrapperEl;\n      var $el = scrollbar.$el,\n          $dragEl = scrollbar.$dragEl;\n      if (!isTouched) return;\n      if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      setDragPosition(e);\n      $wrapperEl.transition(0);\n      $el.transition(0);\n      $dragEl.transition(0);\n      emit('scrollbarDragMove', e);\n    }\n\n    function onDragEnd(e) {\n      var params = swiper.params.scrollbar;\n      var scrollbar = swiper.scrollbar,\n          $wrapperEl = swiper.$wrapperEl;\n      var $el = scrollbar.$el;\n      if (!isTouched) return;\n      isTouched = false;\n\n      if (swiper.params.cssMode) {\n        swiper.$wrapperEl.css('scroll-snap-type', '');\n        $wrapperEl.transition('');\n      }\n\n      if (params.hide) {\n        clearTimeout(dragTimeout);\n        dragTimeout = nextTick(function () {\n          $el.css('opacity', 0);\n          $el.transition(400);\n        }, 1000);\n      }\n\n      emit('scrollbarDragEnd', e);\n\n      if (params.snapOnRelease) {\n        swiper.slideToClosest();\n      }\n    }\n\n    function events(method) {\n      var scrollbar = swiper.scrollbar,\n          touchEventsTouch = swiper.touchEventsTouch,\n          touchEventsDesktop = swiper.touchEventsDesktop,\n          params = swiper.params,\n          support = swiper.support;\n      var $el = scrollbar.$el;\n      if (!$el) return;\n      var target = $el[0];\n      var activeListener = support.passiveListener && params.passiveListeners ? {\n        passive: false,\n        capture: false\n      } : false;\n      var passiveListener = support.passiveListener && params.passiveListeners ? {\n        passive: true,\n        capture: false\n      } : false;\n      if (!target) return;\n      var eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n      if (!support.touch) {\n        target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n        document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n        document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n      } else {\n        target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n        target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n        target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n      }\n    }\n\n    function enableDraggable() {\n      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n      events('on');\n    }\n\n    function disableDraggable() {\n      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n      events('off');\n    }\n\n    function init() {\n      var scrollbar = swiper.scrollbar,\n          $swiperEl = swiper.$el;\n      swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n        el: 'swiper-scrollbar'\n      });\n      var params = swiper.params.scrollbar;\n      if (!params.el) return;\n      var $el = $(params.el);\n\n      if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n        $el = $swiperEl.find(params.el);\n      }\n\n      $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n      var $dragEl = $el.find(\".\".concat(swiper.params.scrollbar.dragClass));\n\n      if ($dragEl.length === 0) {\n        $dragEl = $(\"<div class=\\\"\".concat(swiper.params.scrollbar.dragClass, \"\\\"></div>\"));\n        $el.append($dragEl);\n      }\n\n      Object.assign(scrollbar, {\n        $el: $el,\n        el: $el[0],\n        $dragEl: $dragEl,\n        dragEl: $dragEl[0]\n      });\n\n      if (params.draggable) {\n        enableDraggable();\n      }\n\n      if ($el) {\n        $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n      }\n    }\n\n    function destroy() {\n      var params = swiper.params.scrollbar;\n      var $el = swiper.scrollbar.$el;\n\n      if ($el) {\n        $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n      }\n\n      disableDraggable();\n    }\n\n    on('init', function () {\n      if (swiper.params.scrollbar.enabled === false) {\n        // eslint-disable-next-line\n        disable();\n      } else {\n        init();\n        updateSize();\n        setTranslate();\n      }\n    });\n    on('update resize observerUpdate lock unlock', function () {\n      updateSize();\n    });\n    on('setTranslate', function () {\n      setTranslate();\n    });\n    on('setTransition', function (_s, duration) {\n      setTransition(duration);\n    });\n    on('enable disable', function () {\n      var $el = swiper.scrollbar.$el;\n\n      if ($el) {\n        $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n      }\n    });\n    on('destroy', function () {\n      destroy();\n    });\n\n    var enable = function enable() {\n      swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n      if (swiper.scrollbar.$el) {\n        swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n      }\n\n      init();\n      updateSize();\n      setTranslate();\n    };\n\n    var disable = function disable() {\n      swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n      if (swiper.scrollbar.$el) {\n        swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n      }\n\n      destroy();\n    };\n\n    Object.assign(swiper.scrollbar, {\n      enable: enable,\n      disable: disable,\n      updateSize: updateSize,\n      setTranslate: setTranslate,\n      init: init,\n      destroy: destroy\n    });\n  }\n\n  function Parallax(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      parallax: {\n        enabled: false\n      }\n    });\n\n    var setTransform = function setTransform(el, progress) {\n      var rtl = swiper.rtl;\n      var $el = $(el);\n      var rtlFactor = rtl ? -1 : 1;\n      var p = $el.attr('data-swiper-parallax') || '0';\n      var x = $el.attr('data-swiper-parallax-x');\n      var y = $el.attr('data-swiper-parallax-y');\n      var scale = $el.attr('data-swiper-parallax-scale');\n      var opacity = $el.attr('data-swiper-parallax-opacity');\n\n      if (x || y) {\n        x = x || '0';\n        y = y || '0';\n      } else if (swiper.isHorizontal()) {\n        x = p;\n        y = '0';\n      } else {\n        y = p;\n        x = '0';\n      }\n\n      if (x.indexOf('%') >= 0) {\n        x = \"\".concat(parseInt(x, 10) * progress * rtlFactor, \"%\");\n      } else {\n        x = \"\".concat(x * progress * rtlFactor, \"px\");\n      }\n\n      if (y.indexOf('%') >= 0) {\n        y = \"\".concat(parseInt(y, 10) * progress, \"%\");\n      } else {\n        y = \"\".concat(y * progress, \"px\");\n      }\n\n      if (typeof opacity !== 'undefined' && opacity !== null) {\n        var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n        $el[0].style.opacity = currentOpacity;\n      }\n\n      if (typeof scale === 'undefined' || scale === null) {\n        $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px)\"));\n      } else {\n        var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n        $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px) scale(\").concat(currentScale, \")\"));\n      }\n    };\n\n    var setTranslate = function setTranslate() {\n      var $el = swiper.$el,\n          slides = swiper.slides,\n          progress = swiper.progress,\n          snapGrid = swiper.snapGrid;\n      $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n        setTransform(el, progress);\n      });\n      slides.each(function (slideEl, slideIndex) {\n        var slideProgress = slideEl.progress;\n\n        if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n          slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n        }\n\n        slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n        $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n          setTransform(el, slideProgress);\n        });\n      });\n    };\n\n    var setTransition = function setTransition(duration) {\n      if (duration === void 0) {\n        duration = swiper.params.speed;\n      }\n\n      var $el = swiper.$el;\n      $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n        var $parallaxEl = $(parallaxEl);\n        var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n        if (duration === 0) parallaxDuration = 0;\n        $parallaxEl.transition(parallaxDuration);\n      });\n    };\n\n    on('beforeInit', function () {\n      if (!swiper.params.parallax.enabled) return;\n      swiper.params.watchSlidesProgress = true;\n      swiper.originalParams.watchSlidesProgress = true;\n    });\n    on('init', function () {\n      if (!swiper.params.parallax.enabled) return;\n      setTranslate();\n    });\n    on('setTranslate', function () {\n      if (!swiper.params.parallax.enabled) return;\n      setTranslate();\n    });\n    on('setTransition', function (_swiper, duration) {\n      if (!swiper.params.parallax.enabled) return;\n      setTransition(duration);\n    });\n  }\n\n  function Zoom(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    var window = getWindow();\n    extendParams({\n      zoom: {\n        enabled: false,\n        maxRatio: 3,\n        minRatio: 1,\n        toggle: true,\n        containerClass: 'swiper-zoom-container',\n        zoomedSlideClass: 'swiper-slide-zoomed'\n      }\n    });\n    swiper.zoom = {\n      enabled: false\n    };\n    var currentScale = 1;\n    var isScaling = false;\n    var gesturesEnabled;\n    var fakeGestureTouched;\n    var fakeGestureMoved;\n    var gesture = {\n      $slideEl: undefined,\n      slideWidth: undefined,\n      slideHeight: undefined,\n      $imageEl: undefined,\n      $imageWrapEl: undefined,\n      maxRatio: 3\n    };\n    var image = {\n      isTouched: undefined,\n      isMoved: undefined,\n      currentX: undefined,\n      currentY: undefined,\n      minX: undefined,\n      minY: undefined,\n      maxX: undefined,\n      maxY: undefined,\n      width: undefined,\n      height: undefined,\n      startX: undefined,\n      startY: undefined,\n      touchesStart: {},\n      touchesCurrent: {}\n    };\n    var velocity = {\n      x: undefined,\n      y: undefined,\n      prevPositionX: undefined,\n      prevPositionY: undefined,\n      prevTime: undefined\n    };\n    var scale = 1;\n    Object.defineProperty(swiper.zoom, 'scale', {\n      get: function get() {\n        return scale;\n      },\n      set: function set(value) {\n        if (scale !== value) {\n          var imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n          var slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n          emit('zoomChange', value, imageEl, slideEl);\n        }\n\n        scale = value;\n      }\n    });\n\n    function getDistanceBetweenTouches(e) {\n      if (e.targetTouches.length < 2) return 1;\n      var x1 = e.targetTouches[0].pageX;\n      var y1 = e.targetTouches[0].pageY;\n      var x2 = e.targetTouches[1].pageX;\n      var y2 = e.targetTouches[1].pageY;\n      var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n      return distance;\n    } // Events\n\n\n    function onGestureStart(e) {\n      var support = swiper.support;\n      var params = swiper.params.zoom;\n      fakeGestureTouched = false;\n      fakeGestureMoved = false;\n\n      if (!support.gestures) {\n        if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n          return;\n        }\n\n        fakeGestureTouched = true;\n        gesture.scaleStart = getDistanceBetweenTouches(e);\n      }\n\n      if (!gesture.$slideEl || !gesture.$slideEl.length) {\n        gesture.$slideEl = $(e.target).closest(\".\".concat(swiper.params.slideClass));\n        if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n        gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n        gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n        gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n        if (gesture.$imageWrapEl.length === 0) {\n          gesture.$imageEl = undefined;\n          return;\n        }\n      }\n\n      if (gesture.$imageEl) {\n        gesture.$imageEl.transition(0);\n      }\n\n      isScaling = true;\n    }\n\n    function onGestureChange(e) {\n      var support = swiper.support;\n      var params = swiper.params.zoom;\n      var zoom = swiper.zoom;\n\n      if (!support.gestures) {\n        if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n          return;\n        }\n\n        fakeGestureMoved = true;\n        gesture.scaleMove = getDistanceBetweenTouches(e);\n      }\n\n      if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n        if (e.type === 'gesturechange') onGestureStart(e);\n        return;\n      }\n\n      if (support.gestures) {\n        zoom.scale = e.scale * currentScale;\n      } else {\n        zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n      }\n\n      if (zoom.scale > gesture.maxRatio) {\n        zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n      }\n\n      if (zoom.scale < params.minRatio) {\n        zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n      }\n\n      gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n    }\n\n    function onGestureEnd(e) {\n      var device = swiper.device;\n      var support = swiper.support;\n      var params = swiper.params.zoom;\n      var zoom = swiper.zoom;\n\n      if (!support.gestures) {\n        if (!fakeGestureTouched || !fakeGestureMoved) {\n          return;\n        }\n\n        if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n          return;\n        }\n\n        fakeGestureTouched = false;\n        fakeGestureMoved = false;\n      }\n\n      if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n      zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n      gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n      currentScale = zoom.scale;\n      isScaling = false;\n      if (zoom.scale === 1) gesture.$slideEl = undefined;\n    }\n\n    function onTouchStart(e) {\n      var device = swiper.device;\n      if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n      if (image.isTouched) return;\n      if (device.android && e.cancelable) e.preventDefault();\n      image.isTouched = true;\n      image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n      image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n    }\n\n    function onTouchMove(e) {\n      var zoom = swiper.zoom;\n      if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n      swiper.allowClick = false;\n      if (!image.isTouched || !gesture.$slideEl) return;\n\n      if (!image.isMoved) {\n        image.width = gesture.$imageEl[0].offsetWidth;\n        image.height = gesture.$imageEl[0].offsetHeight;\n        image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n        image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n        gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n        gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n        gesture.$imageWrapEl.transition(0);\n      } // Define if we need image drag\n\n\n      var scaledWidth = image.width * zoom.scale;\n      var scaledHeight = image.height * zoom.scale;\n      if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n      image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n      image.maxX = -image.minX;\n      image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n      image.maxY = -image.minY;\n      image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n      image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n      if (!image.isMoved && !isScaling) {\n        if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n          image.isTouched = false;\n          return;\n        }\n\n        if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n          image.isTouched = false;\n          return;\n        }\n      }\n\n      if (e.cancelable) {\n        e.preventDefault();\n      }\n\n      e.stopPropagation();\n      image.isMoved = true;\n      image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n      image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n      if (image.currentX < image.minX) {\n        image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n      }\n\n      if (image.currentX > image.maxX) {\n        image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n      }\n\n      if (image.currentY < image.minY) {\n        image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n      }\n\n      if (image.currentY > image.maxY) {\n        image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n      } // Velocity\n\n\n      if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n      if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n      if (!velocity.prevTime) velocity.prevTime = Date.now();\n      velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n      velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n      if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n      if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n      velocity.prevPositionX = image.touchesCurrent.x;\n      velocity.prevPositionY = image.touchesCurrent.y;\n      velocity.prevTime = Date.now();\n      gesture.$imageWrapEl.transform(\"translate3d(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n    }\n\n    function onTouchEnd() {\n      var zoom = swiper.zoom;\n      if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n      if (!image.isTouched || !image.isMoved) {\n        image.isTouched = false;\n        image.isMoved = false;\n        return;\n      }\n\n      image.isTouched = false;\n      image.isMoved = false;\n      var momentumDurationX = 300;\n      var momentumDurationY = 300;\n      var momentumDistanceX = velocity.x * momentumDurationX;\n      var newPositionX = image.currentX + momentumDistanceX;\n      var momentumDistanceY = velocity.y * momentumDurationY;\n      var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n      if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n      if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n      var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n      image.currentX = newPositionX;\n      image.currentY = newPositionY; // Define if we need image drag\n\n      var scaledWidth = image.width * zoom.scale;\n      var scaledHeight = image.height * zoom.scale;\n      image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n      image.maxX = -image.minX;\n      image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n      image.maxY = -image.minY;\n      image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n      image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n      gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n    }\n\n    function onTransitionEnd() {\n      var zoom = swiper.zoom;\n\n      if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n        if (gesture.$imageEl) {\n          gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n        }\n\n        if (gesture.$imageWrapEl) {\n          gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n        }\n\n        zoom.scale = 1;\n        currentScale = 1;\n        gesture.$slideEl = undefined;\n        gesture.$imageEl = undefined;\n        gesture.$imageWrapEl = undefined;\n      }\n    }\n\n    function zoomIn(e) {\n      var zoom = swiper.zoom;\n      var params = swiper.params.zoom;\n\n      if (!gesture.$slideEl) {\n        if (e && e.target) {\n          gesture.$slideEl = $(e.target).closest(\".\".concat(swiper.params.slideClass));\n        }\n\n        if (!gesture.$slideEl) {\n          if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n            gesture.$slideEl = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideActiveClass));\n          } else {\n            gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n          }\n        }\n\n        gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n        gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n      }\n\n      if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n      if (swiper.params.cssMode) {\n        swiper.wrapperEl.style.overflow = 'hidden';\n        swiper.wrapperEl.style.touchAction = 'none';\n      }\n\n      gesture.$slideEl.addClass(\"\".concat(params.zoomedSlideClass));\n      var touchX;\n      var touchY;\n      var offsetX;\n      var offsetY;\n      var diffX;\n      var diffY;\n      var translateX;\n      var translateY;\n      var imageWidth;\n      var imageHeight;\n      var scaledWidth;\n      var scaledHeight;\n      var translateMinX;\n      var translateMinY;\n      var translateMaxX;\n      var translateMaxY;\n      var slideWidth;\n      var slideHeight;\n\n      if (typeof image.touchesStart.x === 'undefined' && e) {\n        touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n        touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n      } else {\n        touchX = image.touchesStart.x;\n        touchY = image.touchesStart.y;\n      }\n\n      zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n      currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n      if (e) {\n        slideWidth = gesture.$slideEl[0].offsetWidth;\n        slideHeight = gesture.$slideEl[0].offsetHeight;\n        offsetX = gesture.$slideEl.offset().left + window.scrollX;\n        offsetY = gesture.$slideEl.offset().top + window.scrollY;\n        diffX = offsetX + slideWidth / 2 - touchX;\n        diffY = offsetY + slideHeight / 2 - touchY;\n        imageWidth = gesture.$imageEl[0].offsetWidth;\n        imageHeight = gesture.$imageEl[0].offsetHeight;\n        scaledWidth = imageWidth * zoom.scale;\n        scaledHeight = imageHeight * zoom.scale;\n        translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n        translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n        translateMaxX = -translateMinX;\n        translateMaxY = -translateMinY;\n        translateX = diffX * zoom.scale;\n        translateY = diffY * zoom.scale;\n\n        if (translateX < translateMinX) {\n          translateX = translateMinX;\n        }\n\n        if (translateX > translateMaxX) {\n          translateX = translateMaxX;\n        }\n\n        if (translateY < translateMinY) {\n          translateY = translateMinY;\n        }\n\n        if (translateY > translateMaxY) {\n          translateY = translateMaxY;\n        }\n      } else {\n        translateX = 0;\n        translateY = 0;\n      }\n\n      gesture.$imageWrapEl.transition(300).transform(\"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px,0)\"));\n      gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n    }\n\n    function zoomOut() {\n      var zoom = swiper.zoom;\n      var params = swiper.params.zoom;\n\n      if (!gesture.$slideEl) {\n        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n          gesture.$slideEl = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideActiveClass));\n        } else {\n          gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n        }\n\n        gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n        gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n      }\n\n      if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n      if (swiper.params.cssMode) {\n        swiper.wrapperEl.style.overflow = '';\n        swiper.wrapperEl.style.touchAction = '';\n      }\n\n      zoom.scale = 1;\n      currentScale = 1;\n      gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n      gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n      gesture.$slideEl.removeClass(\"\".concat(params.zoomedSlideClass));\n      gesture.$slideEl = undefined;\n    } // Toggle Zoom\n\n\n    function zoomToggle(e) {\n      var zoom = swiper.zoom;\n\n      if (zoom.scale && zoom.scale !== 1) {\n        // Zoom Out\n        zoomOut();\n      } else {\n        // Zoom In\n        zoomIn(e);\n      }\n    }\n\n    function getListeners() {\n      var support = swiper.support;\n      var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n        passive: true,\n        capture: false\n      } : false;\n      var activeListenerWithCapture = support.passiveListener ? {\n        passive: false,\n        capture: true\n      } : true;\n      return {\n        passiveListener: passiveListener,\n        activeListenerWithCapture: activeListenerWithCapture\n      };\n    }\n\n    function getSlideSelector() {\n      return \".\".concat(swiper.params.slideClass);\n    }\n\n    function toggleGestures(method) {\n      var _getListeners = getListeners(),\n          passiveListener = _getListeners.passiveListener;\n\n      var slideSelector = getSlideSelector();\n      swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n      swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n      swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n    }\n\n    function enableGestures() {\n      if (gesturesEnabled) return;\n      gesturesEnabled = true;\n      toggleGestures('on');\n    }\n\n    function disableGestures() {\n      if (!gesturesEnabled) return;\n      gesturesEnabled = false;\n      toggleGestures('off');\n    } // Attach/Detach Events\n\n\n    function enable() {\n      var zoom = swiper.zoom;\n      if (zoom.enabled) return;\n      zoom.enabled = true;\n      var support = swiper.support;\n\n      var _getListeners2 = getListeners(),\n          passiveListener = _getListeners2.passiveListener,\n          activeListenerWithCapture = _getListeners2.activeListenerWithCapture;\n\n      var slideSelector = getSlideSelector(); // Scale image\n\n      if (support.gestures) {\n        swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n        swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n      } else if (swiper.touchEvents.start === 'touchstart') {\n        swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n        swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n        swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n        if (swiper.touchEvents.cancel) {\n          swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n        }\n      } // Move image\n\n\n      swiper.$wrapperEl.on(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture);\n    }\n\n    function disable() {\n      var zoom = swiper.zoom;\n      if (!zoom.enabled) return;\n      var support = swiper.support;\n      zoom.enabled = false;\n\n      var _getListeners3 = getListeners(),\n          passiveListener = _getListeners3.passiveListener,\n          activeListenerWithCapture = _getListeners3.activeListenerWithCapture;\n\n      var slideSelector = getSlideSelector(); // Scale image\n\n      if (support.gestures) {\n        swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n        swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n      } else if (swiper.touchEvents.start === 'touchstart') {\n        swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n        swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n        swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n        if (swiper.touchEvents.cancel) {\n          swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n        }\n      } // Move image\n\n\n      swiper.$wrapperEl.off(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture);\n    }\n\n    on('init', function () {\n      if (swiper.params.zoom.enabled) {\n        enable();\n      }\n    });\n    on('destroy', function () {\n      disable();\n    });\n    on('touchStart', function (_s, e) {\n      if (!swiper.zoom.enabled) return;\n      onTouchStart(e);\n    });\n    on('touchEnd', function (_s, e) {\n      if (!swiper.zoom.enabled) return;\n      onTouchEnd();\n    });\n    on('doubleTap', function (_s, e) {\n      if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n        zoomToggle(e);\n      }\n    });\n    on('transitionEnd', function () {\n      if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n        onTransitionEnd();\n      }\n    });\n    on('slideChange', function () {\n      if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n        onTransitionEnd();\n      }\n    });\n    Object.assign(swiper.zoom, {\n      enable: enable,\n      disable: disable,\n      in: zoomIn,\n      out: zoomOut,\n      toggle: zoomToggle\n    });\n  }\n\n  function Lazy(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    extendParams({\n      lazy: {\n        checkInView: false,\n        enabled: false,\n        loadPrevNext: false,\n        loadPrevNextAmount: 1,\n        loadOnTransitionStart: false,\n        scrollingElement: '',\n        elementClass: 'swiper-lazy',\n        loadingClass: 'swiper-lazy-loading',\n        loadedClass: 'swiper-lazy-loaded',\n        preloaderClass: 'swiper-lazy-preloader'\n      }\n    });\n    swiper.lazy = {};\n    var scrollHandlerAttached = false;\n    var initialImageLoaded = false;\n\n    function loadInSlide(index, loadInDuplicate) {\n      if (loadInDuplicate === void 0) {\n        loadInDuplicate = true;\n      }\n\n      var params = swiper.params.lazy;\n      if (typeof index === 'undefined') return;\n      if (swiper.slides.length === 0) return;\n      var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n      var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")) : swiper.slides.eq(index);\n      var $images = $slideEl.find(\".\".concat(params.elementClass, \":not(.\").concat(params.loadedClass, \"):not(.\").concat(params.loadingClass, \")\"));\n\n      if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n        $images.push($slideEl[0]);\n      }\n\n      if ($images.length === 0) return;\n      $images.each(function (imageEl) {\n        var $imageEl = $(imageEl);\n        $imageEl.addClass(params.loadingClass);\n        var background = $imageEl.attr('data-background');\n        var src = $imageEl.attr('data-src');\n        var srcset = $imageEl.attr('data-srcset');\n        var sizes = $imageEl.attr('data-sizes');\n        var $pictureEl = $imageEl.parent('picture');\n        swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n          if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n          if (background) {\n            $imageEl.css('background-image', \"url(\\\"\".concat(background, \"\\\")\"));\n            $imageEl.removeAttr('data-background');\n          } else {\n            if (srcset) {\n              $imageEl.attr('srcset', srcset);\n              $imageEl.removeAttr('data-srcset');\n            }\n\n            if (sizes) {\n              $imageEl.attr('sizes', sizes);\n              $imageEl.removeAttr('data-sizes');\n            }\n\n            if ($pictureEl.length) {\n              $pictureEl.children('source').each(function (sourceEl) {\n                var $source = $(sourceEl);\n\n                if ($source.attr('data-srcset')) {\n                  $source.attr('srcset', $source.attr('data-srcset'));\n                  $source.removeAttr('data-srcset');\n                }\n              });\n            }\n\n            if (src) {\n              $imageEl.attr('src', src);\n              $imageEl.removeAttr('data-src');\n            }\n          }\n\n          $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n          $slideEl.find(\".\".concat(params.preloaderClass)).remove();\n\n          if (swiper.params.loop && loadInDuplicate) {\n            var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n            if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n              var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(slideOriginalIndex, \"\\\"]:not(.\").concat(swiper.params.slideDuplicateClass, \")\"));\n              loadInSlide(originalSlide.index(), false);\n            } else {\n              var duplicatedSlide = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(slideOriginalIndex, \"\\\"]\"));\n              loadInSlide(duplicatedSlide.index(), false);\n            }\n          }\n\n          emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n          if (swiper.params.autoHeight) {\n            swiper.updateAutoHeight();\n          }\n        });\n        emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n      });\n    }\n\n    function load() {\n      var $wrapperEl = swiper.$wrapperEl,\n          swiperParams = swiper.params,\n          slides = swiper.slides,\n          activeIndex = swiper.activeIndex;\n      var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n      var params = swiperParams.lazy;\n      var slidesPerView = swiperParams.slidesPerView;\n\n      if (slidesPerView === 'auto') {\n        slidesPerView = 0;\n      }\n\n      function slideExist(index) {\n        if (isVirtual) {\n          if ($wrapperEl.children(\".\".concat(swiperParams.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")).length) {\n            return true;\n          }\n        } else if (slides[index]) return true;\n\n        return false;\n      }\n\n      function slideIndex(slideEl) {\n        if (isVirtual) {\n          return $(slideEl).attr('data-swiper-slide-index');\n        }\n\n        return $(slideEl).index();\n      }\n\n      if (!initialImageLoaded) initialImageLoaded = true;\n\n      if (swiper.params.watchSlidesProgress) {\n        $wrapperEl.children(\".\".concat(swiperParams.slideVisibleClass)).each(function (slideEl) {\n          var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n          loadInSlide(index);\n        });\n      } else if (slidesPerView > 1) {\n        for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n          if (slideExist(i)) loadInSlide(i);\n        }\n      } else {\n        loadInSlide(activeIndex);\n      }\n\n      if (params.loadPrevNext) {\n        if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n          var amount = params.loadPrevNextAmount;\n          var spv = Math.ceil(slidesPerView);\n          var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n          var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n          for (var _i10 = activeIndex + spv; _i10 < maxIndex; _i10 += 1) {\n            if (slideExist(_i10)) loadInSlide(_i10);\n          } // Prev Slides\n\n\n          for (var _i11 = minIndex; _i11 < activeIndex; _i11 += 1) {\n            if (slideExist(_i11)) loadInSlide(_i11);\n          }\n        } else {\n          var nextSlide = $wrapperEl.children(\".\".concat(swiperParams.slideNextClass));\n          if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n          var prevSlide = $wrapperEl.children(\".\".concat(swiperParams.slidePrevClass));\n          if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n        }\n      }\n    }\n\n    function checkInViewOnLoad() {\n      var window = getWindow();\n      if (!swiper || swiper.destroyed) return;\n      var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n      var isWindow = $scrollElement[0] === window;\n      var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n      var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n      var swiperOffset = swiper.$el.offset();\n      var rtl = swiper.rtlTranslate;\n      var inView = false;\n      if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n      var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n      for (var i = 0; i < swiperCoord.length; i += 1) {\n        var point = swiperCoord[i];\n\n        if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n          inView = true;\n        }\n      }\n\n      var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n        passive: true,\n        capture: false\n      } : false;\n\n      if (inView) {\n        load();\n        $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n      } else if (!scrollHandlerAttached) {\n        scrollHandlerAttached = true;\n        $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n      }\n    }\n\n    on('beforeInit', function () {\n      if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n        swiper.params.preloadImages = false;\n      }\n    });\n    on('init', function () {\n      if (swiper.params.lazy.enabled) {\n        if (swiper.params.lazy.checkInView) {\n          checkInViewOnLoad();\n        } else {\n          load();\n        }\n      }\n    });\n    on('scroll', function () {\n      if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n        load();\n      }\n    });\n    on('scrollbarDragMove resize _freeModeNoMomentumRelease', function () {\n      if (swiper.params.lazy.enabled) {\n        if (swiper.params.lazy.checkInView) {\n          checkInViewOnLoad();\n        } else {\n          load();\n        }\n      }\n    });\n    on('transitionStart', function () {\n      if (swiper.params.lazy.enabled) {\n        if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n          if (swiper.params.lazy.checkInView) {\n            checkInViewOnLoad();\n          } else {\n            load();\n          }\n        }\n      }\n    });\n    on('transitionEnd', function () {\n      if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n        if (swiper.params.lazy.checkInView) {\n          checkInViewOnLoad();\n        } else {\n          load();\n        }\n      }\n    });\n    on('slideChange', function () {\n      var _swiper$params2 = swiper.params,\n          lazy = _swiper$params2.lazy,\n          cssMode = _swiper$params2.cssMode,\n          watchSlidesProgress = _swiper$params2.watchSlidesProgress,\n          touchReleaseOnEdges = _swiper$params2.touchReleaseOnEdges,\n          resistanceRatio = _swiper$params2.resistanceRatio;\n\n      if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n        load();\n      }\n    });\n    on('destroy', function () {\n      if (!swiper.$el) return;\n      swiper.$el.find(\".\".concat(swiper.params.lazy.loadingClass)).removeClass(swiper.params.lazy.loadingClass);\n    });\n    Object.assign(swiper.lazy, {\n      load: load,\n      loadInSlide: loadInSlide\n    });\n  }\n  /* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n\n  function Controller(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      controller: {\n        control: undefined,\n        inverse: false,\n        by: 'slide' // or 'container'\n\n      }\n    });\n    swiper.controller = {\n      control: undefined\n    };\n\n    function LinearSpline(x, y) {\n      var binarySearch = function search() {\n        var maxIndex;\n        var minIndex;\n        var guess;\n        return function (array, val) {\n          minIndex = -1;\n          maxIndex = array.length;\n\n          while (maxIndex - minIndex > 1) {\n            guess = maxIndex + minIndex >> 1;\n\n            if (array[guess] <= val) {\n              minIndex = guess;\n            } else {\n              maxIndex = guess;\n            }\n          }\n\n          return maxIndex;\n        };\n      }();\n\n      this.x = x;\n      this.y = y;\n      this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n      // (x1,y1) is the known point before given value,\n      // (x3,y3) is the known point after given value.\n\n      var i1;\n      var i3;\n\n      this.interpolate = function interpolate(x2) {\n        if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n        i3 = binarySearch(this.x, x2);\n        i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n        // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n        return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n      };\n\n      return this;\n    } // xxx: for now i will just save one spline function to to\n\n\n    function getInterpolateFunction(c) {\n      if (!swiper.controller.spline) {\n        swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n      }\n    }\n\n    function setTranslate(_t, byController) {\n      var controlled = swiper.controller.control;\n      var multiplier;\n      var controlledTranslate;\n      var Swiper = swiper.constructor;\n\n      function setControlledTranslate(c) {\n        // this will create an Interpolate function based on the snapGrids\n        // x is the Grid of the scrolled scroller and y will be the controlled scroller\n        // it makes sense to create this only once and recall it for the interpolation\n        // the function does a lot of value caching for performance\n        var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n        if (swiper.params.controller.by === 'slide') {\n          getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n          // but it did not work out\n\n          controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n        }\n\n        if (!controlledTranslate || swiper.params.controller.by === 'container') {\n          multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n          controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n        }\n\n        if (swiper.params.controller.inverse) {\n          controlledTranslate = c.maxTranslate() - controlledTranslate;\n        }\n\n        c.updateProgress(controlledTranslate);\n        c.setTranslate(controlledTranslate, swiper);\n        c.updateActiveIndex();\n        c.updateSlidesClasses();\n      }\n\n      if (Array.isArray(controlled)) {\n        for (var i = 0; i < controlled.length; i += 1) {\n          if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n            setControlledTranslate(controlled[i]);\n          }\n        }\n      } else if (controlled instanceof Swiper && byController !== controlled) {\n        setControlledTranslate(controlled);\n      }\n    }\n\n    function setTransition(duration, byController) {\n      var Swiper = swiper.constructor;\n      var controlled = swiper.controller.control;\n      var i;\n\n      function setControlledTransition(c) {\n        c.setTransition(duration, swiper);\n\n        if (duration !== 0) {\n          c.transitionStart();\n\n          if (c.params.autoHeight) {\n            nextTick(function () {\n              c.updateAutoHeight();\n            });\n          }\n\n          c.$wrapperEl.transitionEnd(function () {\n            if (!controlled) return;\n\n            if (c.params.loop && swiper.params.controller.by === 'slide') {\n              c.loopFix();\n            }\n\n            c.transitionEnd();\n          });\n        }\n      }\n\n      if (Array.isArray(controlled)) {\n        for (i = 0; i < controlled.length; i += 1) {\n          if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n            setControlledTransition(controlled[i]);\n          }\n        }\n      } else if (controlled instanceof Swiper && byController !== controlled) {\n        setControlledTransition(controlled);\n      }\n    }\n\n    function removeSpline() {\n      if (!swiper.controller.control) return;\n\n      if (swiper.controller.spline) {\n        swiper.controller.spline = undefined;\n        delete swiper.controller.spline;\n      }\n    }\n\n    on('beforeInit', function () {\n      swiper.controller.control = swiper.params.controller.control;\n    });\n    on('update', function () {\n      removeSpline();\n    });\n    on('resize', function () {\n      removeSpline();\n    });\n    on('observerUpdate', function () {\n      removeSpline();\n    });\n    on('setTranslate', function (_s, translate, byController) {\n      if (!swiper.controller.control) return;\n      swiper.controller.setTranslate(translate, byController);\n    });\n    on('setTransition', function (_s, duration, byController) {\n      if (!swiper.controller.control) return;\n      swiper.controller.setTransition(duration, byController);\n    });\n    Object.assign(swiper.controller, {\n      setTranslate: setTranslate,\n      setTransition: setTransition\n    });\n  }\n\n  function A11y(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      a11y: {\n        enabled: true,\n        notificationClass: 'swiper-notification',\n        prevSlideMessage: 'Previous slide',\n        nextSlideMessage: 'Next slide',\n        firstSlideMessage: 'This is the first slide',\n        lastSlideMessage: 'This is the last slide',\n        paginationBulletMessage: 'Go to slide {{index}}',\n        slideLabelMessage: '{{index}} / {{slidesLength}}',\n        containerMessage: null,\n        containerRoleDescriptionMessage: null,\n        itemRoleDescriptionMessage: null,\n        slideRole: 'group',\n        id: null\n      }\n    });\n    swiper.a11y = {\n      clicked: false\n    };\n    var liveRegion = null;\n\n    function notify(message) {\n      var notification = liveRegion;\n      if (notification.length === 0) return;\n      notification.html('');\n      notification.html(message);\n    }\n\n    function getRandomNumber(size) {\n      if (size === void 0) {\n        size = 16;\n      }\n\n      var randomChar = function randomChar() {\n        return Math.round(16 * Math.random()).toString(16);\n      };\n\n      return 'x'.repeat(size).replace(/x/g, randomChar);\n    }\n\n    function makeElFocusable($el) {\n      $el.attr('tabIndex', '0');\n    }\n\n    function makeElNotFocusable($el) {\n      $el.attr('tabIndex', '-1');\n    }\n\n    function addElRole($el, role) {\n      $el.attr('role', role);\n    }\n\n    function addElRoleDescription($el, description) {\n      $el.attr('aria-roledescription', description);\n    }\n\n    function addElControls($el, controls) {\n      $el.attr('aria-controls', controls);\n    }\n\n    function addElLabel($el, label) {\n      $el.attr('aria-label', label);\n    }\n\n    function addElId($el, id) {\n      $el.attr('id', id);\n    }\n\n    function addElLive($el, live) {\n      $el.attr('aria-live', live);\n    }\n\n    function disableEl($el) {\n      $el.attr('aria-disabled', true);\n    }\n\n    function enableEl($el) {\n      $el.attr('aria-disabled', false);\n    }\n\n    function onEnterOrSpaceKey(e) {\n      if (e.keyCode !== 13 && e.keyCode !== 32) return;\n      var params = swiper.params.a11y;\n      var $targetEl = $(e.target);\n\n      if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n        if (!(swiper.isEnd && !swiper.params.loop)) {\n          swiper.slideNext();\n        }\n\n        if (swiper.isEnd) {\n          notify(params.lastSlideMessage);\n        } else {\n          notify(params.nextSlideMessage);\n        }\n      }\n\n      if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n        if (!(swiper.isBeginning && !swiper.params.loop)) {\n          swiper.slidePrev();\n        }\n\n        if (swiper.isBeginning) {\n          notify(params.firstSlideMessage);\n        } else {\n          notify(params.prevSlideMessage);\n        }\n      }\n\n      if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n        $targetEl[0].click();\n      }\n    }\n\n    function updateNavigation() {\n      if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n      var _swiper$navigation5 = swiper.navigation,\n          $nextEl = _swiper$navigation5.$nextEl,\n          $prevEl = _swiper$navigation5.$prevEl;\n\n      if ($prevEl && $prevEl.length > 0) {\n        if (swiper.isBeginning) {\n          disableEl($prevEl);\n          makeElNotFocusable($prevEl);\n        } else {\n          enableEl($prevEl);\n          makeElFocusable($prevEl);\n        }\n      }\n\n      if ($nextEl && $nextEl.length > 0) {\n        if (swiper.isEnd) {\n          disableEl($nextEl);\n          makeElNotFocusable($nextEl);\n        } else {\n          enableEl($nextEl);\n          makeElFocusable($nextEl);\n        }\n      }\n    }\n\n    function hasPagination() {\n      return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n    }\n\n    function hasClickablePagination() {\n      return hasPagination() && swiper.params.pagination.clickable;\n    }\n\n    function updatePagination() {\n      var params = swiper.params.a11y;\n      if (!hasPagination()) return;\n      swiper.pagination.bullets.each(function (bulletEl) {\n        var $bulletEl = $(bulletEl);\n\n        if (swiper.params.pagination.clickable) {\n          makeElFocusable($bulletEl);\n\n          if (!swiper.params.pagination.renderBullet) {\n            addElRole($bulletEl, 'button');\n            addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n          }\n        }\n\n        if ($bulletEl.is(\".\".concat(swiper.params.pagination.bulletActiveClass))) {\n          $bulletEl.attr('aria-current', 'true');\n        } else {\n          $bulletEl.removeAttr('aria-current');\n        }\n      });\n    }\n\n    var initNavEl = function initNavEl($el, wrapperId, message) {\n      makeElFocusable($el);\n\n      if ($el[0].tagName !== 'BUTTON') {\n        addElRole($el, 'button');\n        $el.on('keydown', onEnterOrSpaceKey);\n      }\n\n      addElLabel($el, message);\n      addElControls($el, wrapperId);\n    };\n\n    var handlePointerDown = function handlePointerDown() {\n      swiper.a11y.clicked = true;\n    };\n\n    var handlePointerUp = function handlePointerUp() {\n      requestAnimationFrame(function () {\n        requestAnimationFrame(function () {\n          swiper.a11y.clicked = false;\n        });\n      });\n    };\n\n    var handleFocus = function handleFocus(e) {\n      if (swiper.a11y.clicked) return;\n      var slideEl = e.target.closest(\".\".concat(swiper.params.slideClass));\n      if (!slideEl || !swiper.slides.includes(slideEl)) return;\n      var isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n      var isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n      if (isActive || isVisible) return;\n\n      if (swiper.isHorizontal()) {\n        swiper.el.scrollLeft = 0;\n      } else {\n        swiper.el.scrollTop = 0;\n      }\n\n      swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n    };\n\n    var initSlides = function initSlides() {\n      var params = swiper.params.a11y;\n\n      if (params.itemRoleDescriptionMessage) {\n        addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n      }\n\n      if (params.slideRole) {\n        addElRole($(swiper.slides), params.slideRole);\n      }\n\n      var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n        return !el.classList.contains(swiper.params.slideDuplicateClass);\n      }).length : swiper.slides.length;\n\n      if (params.slideLabelMessage) {\n        swiper.slides.each(function (slideEl, index) {\n          var $slideEl = $(slideEl);\n          var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n          var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n          addElLabel($slideEl, ariaLabelMessage);\n        });\n      }\n    };\n\n    var init = function init() {\n      var params = swiper.params.a11y;\n      swiper.$el.append(liveRegion); // Container\n\n      var $containerEl = swiper.$el;\n\n      if (params.containerRoleDescriptionMessage) {\n        addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n      }\n\n      if (params.containerMessage) {\n        addElLabel($containerEl, params.containerMessage);\n      } // Wrapper\n\n\n      var $wrapperEl = swiper.$wrapperEl;\n      var wrapperId = params.id || $wrapperEl.attr('id') || \"swiper-wrapper-\".concat(getRandomNumber(16));\n      var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n      addElId($wrapperEl, wrapperId);\n      addElLive($wrapperEl, live); // Slide\n\n      initSlides(); // Navigation\n\n      var $nextEl;\n      var $prevEl;\n\n      if (swiper.navigation && swiper.navigation.$nextEl) {\n        $nextEl = swiper.navigation.$nextEl;\n      }\n\n      if (swiper.navigation && swiper.navigation.$prevEl) {\n        $prevEl = swiper.navigation.$prevEl;\n      }\n\n      if ($nextEl && $nextEl.length) {\n        initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n      }\n\n      if ($prevEl && $prevEl.length) {\n        initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n      } // Pagination\n\n\n      if (hasClickablePagination()) {\n        swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n      } // Tab focus\n\n\n      swiper.$el.on('focus', handleFocus, true);\n      swiper.$el.on('pointerdown', handlePointerDown, true);\n      swiper.$el.on('pointerup', handlePointerUp, true);\n    };\n\n    function destroy() {\n      if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n      var $nextEl;\n      var $prevEl;\n\n      if (swiper.navigation && swiper.navigation.$nextEl) {\n        $nextEl = swiper.navigation.$nextEl;\n      }\n\n      if (swiper.navigation && swiper.navigation.$prevEl) {\n        $prevEl = swiper.navigation.$prevEl;\n      }\n\n      if ($nextEl) {\n        $nextEl.off('keydown', onEnterOrSpaceKey);\n      }\n\n      if ($prevEl) {\n        $prevEl.off('keydown', onEnterOrSpaceKey);\n      } // Pagination\n\n\n      if (hasClickablePagination()) {\n        swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n      } // Tab focus\n\n\n      swiper.$el.off('focus', handleFocus, true);\n      swiper.$el.off('pointerdown', handlePointerDown, true);\n      swiper.$el.off('pointerup', handlePointerUp, true);\n    }\n\n    on('beforeInit', function () {\n      liveRegion = $(\"<span class=\\\"\".concat(swiper.params.a11y.notificationClass, \"\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"></span>\"));\n    });\n    on('afterInit', function () {\n      if (!swiper.params.a11y.enabled) return;\n      init();\n    });\n    on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', function () {\n      if (!swiper.params.a11y.enabled) return;\n      initSlides();\n    });\n    on('fromEdge toEdge afterInit lock unlock', function () {\n      if (!swiper.params.a11y.enabled) return;\n      updateNavigation();\n    });\n    on('paginationUpdate', function () {\n      if (!swiper.params.a11y.enabled) return;\n      updatePagination();\n    });\n    on('destroy', function () {\n      if (!swiper.params.a11y.enabled) return;\n      destroy();\n    });\n  }\n\n  function History(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      history: {\n        enabled: false,\n        root: '',\n        replaceState: false,\n        key: 'slides',\n        keepQuery: false\n      }\n    });\n    var initialized = false;\n    var paths = {};\n\n    var slugify = function slugify(text) {\n      return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n    };\n\n    var getPathValues = function getPathValues(urlOverride) {\n      var window = getWindow();\n      var location;\n\n      if (urlOverride) {\n        location = new URL(urlOverride);\n      } else {\n        location = window.location;\n      }\n\n      var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n        return part !== '';\n      });\n      var total = pathArray.length;\n      var key = pathArray[total - 2];\n      var value = pathArray[total - 1];\n      return {\n        key: key,\n        value: value\n      };\n    };\n\n    var setHistory = function setHistory(key, index) {\n      var window = getWindow();\n      if (!initialized || !swiper.params.history.enabled) return;\n      var location;\n\n      if (swiper.params.url) {\n        location = new URL(swiper.params.url);\n      } else {\n        location = window.location;\n      }\n\n      var slide = swiper.slides.eq(index);\n      var value = slugify(slide.attr('data-history'));\n\n      if (swiper.params.history.root.length > 0) {\n        var root = swiper.params.history.root;\n        if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n        value = \"\".concat(root, \"/\").concat(key, \"/\").concat(value);\n      } else if (!location.pathname.includes(key)) {\n        value = \"\".concat(key, \"/\").concat(value);\n      }\n\n      if (swiper.params.history.keepQuery) {\n        value += location.search;\n      }\n\n      var currentState = window.history.state;\n\n      if (currentState && currentState.value === value) {\n        return;\n      }\n\n      if (swiper.params.history.replaceState) {\n        window.history.replaceState({\n          value: value\n        }, null, value);\n      } else {\n        window.history.pushState({\n          value: value\n        }, null, value);\n      }\n    };\n\n    var scrollToSlide = function scrollToSlide(speed, value, runCallbacks) {\n      if (value) {\n        for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n          var _slide3 = swiper.slides.eq(i);\n\n          var slideHistory = slugify(_slide3.attr('data-history'));\n\n          if (slideHistory === value && !_slide3.hasClass(swiper.params.slideDuplicateClass)) {\n            var _index3 = _slide3.index();\n\n            swiper.slideTo(_index3, speed, runCallbacks);\n          }\n        }\n      } else {\n        swiper.slideTo(0, speed, runCallbacks);\n      }\n    };\n\n    var setHistoryPopState = function setHistoryPopState() {\n      paths = getPathValues(swiper.params.url);\n      scrollToSlide(swiper.params.speed, paths.value, false);\n    };\n\n    var init = function init() {\n      var window = getWindow();\n      if (!swiper.params.history) return;\n\n      if (!window.history || !window.history.pushState) {\n        swiper.params.history.enabled = false;\n        swiper.params.hashNavigation.enabled = true;\n        return;\n      }\n\n      initialized = true;\n      paths = getPathValues(swiper.params.url);\n      if (!paths.key && !paths.value) return;\n      scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n      if (!swiper.params.history.replaceState) {\n        window.addEventListener('popstate', setHistoryPopState);\n      }\n    };\n\n    var destroy = function destroy() {\n      var window = getWindow();\n\n      if (!swiper.params.history.replaceState) {\n        window.removeEventListener('popstate', setHistoryPopState);\n      }\n    };\n\n    on('init', function () {\n      if (swiper.params.history.enabled) {\n        init();\n      }\n    });\n    on('destroy', function () {\n      if (swiper.params.history.enabled) {\n        destroy();\n      }\n    });\n    on('transitionEnd _freeModeNoMomentumRelease', function () {\n      if (initialized) {\n        setHistory(swiper.params.history.key, swiper.activeIndex);\n      }\n    });\n    on('slideChange', function () {\n      if (initialized && swiper.params.cssMode) {\n        setHistory(swiper.params.history.key, swiper.activeIndex);\n      }\n    });\n  }\n\n  function HashNavigation(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        emit = _ref.emit,\n        on = _ref.on;\n    var initialized = false;\n    var document = getDocument();\n    var window = getWindow();\n    extendParams({\n      hashNavigation: {\n        enabled: false,\n        replaceState: false,\n        watchState: false\n      }\n    });\n\n    var onHashChange = function onHashChange() {\n      emit('hashChange');\n      var newHash = document.location.hash.replace('#', '');\n      var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n      if (newHash !== activeSlideHash) {\n        var newIndex = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-hash=\\\"\").concat(newHash, \"\\\"]\")).index();\n        if (typeof newIndex === 'undefined') return;\n        swiper.slideTo(newIndex);\n      }\n    };\n\n    var setHash = function setHash() {\n      if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n      if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n        window.history.replaceState(null, null, \"#\".concat(swiper.slides.eq(swiper.activeIndex).attr('data-hash')) || '');\n        emit('hashSet');\n      } else {\n        var _slide4 = swiper.slides.eq(swiper.activeIndex);\n\n        var hash = _slide4.attr('data-hash') || _slide4.attr('data-history');\n\n        document.location.hash = hash || '';\n        emit('hashSet');\n      }\n    };\n\n    var init = function init() {\n      if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n      initialized = true;\n      var hash = document.location.hash.replace('#', '');\n\n      if (hash) {\n        var speed = 0;\n\n        for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n          var _slide5 = swiper.slides.eq(i);\n\n          var slideHash = _slide5.attr('data-hash') || _slide5.attr('data-history');\n\n          if (slideHash === hash && !_slide5.hasClass(swiper.params.slideDuplicateClass)) {\n            var _index4 = _slide5.index();\n\n            swiper.slideTo(_index4, speed, swiper.params.runCallbacksOnInit, true);\n          }\n        }\n      }\n\n      if (swiper.params.hashNavigation.watchState) {\n        $(window).on('hashchange', onHashChange);\n      }\n    };\n\n    var destroy = function destroy() {\n      if (swiper.params.hashNavigation.watchState) {\n        $(window).off('hashchange', onHashChange);\n      }\n    };\n\n    on('init', function () {\n      if (swiper.params.hashNavigation.enabled) {\n        init();\n      }\n    });\n    on('destroy', function () {\n      if (swiper.params.hashNavigation.enabled) {\n        destroy();\n      }\n    });\n    on('transitionEnd _freeModeNoMomentumRelease', function () {\n      if (initialized) {\n        setHash();\n      }\n    });\n    on('slideChange', function () {\n      if (initialized && swiper.params.cssMode) {\n        setHash();\n      }\n    });\n  }\n  /* eslint no-underscore-dangle: \"off\" */\n\n\n  function Autoplay(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on,\n        emit = _ref.emit;\n    var timeout;\n    swiper.autoplay = {\n      running: false,\n      paused: false\n    };\n    extendParams({\n      autoplay: {\n        enabled: false,\n        delay: 3000,\n        waitForTransition: true,\n        disableOnInteraction: true,\n        stopOnLastSlide: false,\n        reverseDirection: false,\n        pauseOnMouseEnter: false\n      }\n    });\n\n    function run() {\n      if (!swiper.size) {\n        swiper.autoplay.running = false;\n        swiper.autoplay.paused = false;\n        return;\n      }\n\n      var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n      var delay = swiper.params.autoplay.delay;\n\n      if ($activeSlideEl.attr('data-swiper-autoplay')) {\n        delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n      }\n\n      clearTimeout(timeout);\n      timeout = nextTick(function () {\n        var autoplayResult;\n\n        if (swiper.params.autoplay.reverseDirection) {\n          if (swiper.params.loop) {\n            swiper.loopFix();\n            autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n            emit('autoplay');\n          } else if (!swiper.isBeginning) {\n            autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n            emit('autoplay');\n          } else if (!swiper.params.autoplay.stopOnLastSlide) {\n            autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n            emit('autoplay');\n          } else {\n            stop();\n          }\n        } else if (swiper.params.loop) {\n          swiper.loopFix();\n          autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.isEnd) {\n          autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n          emit('autoplay');\n        } else {\n          stop();\n        }\n\n        if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n          run();\n        }\n      }, delay);\n    }\n\n    function start() {\n      if (typeof timeout !== 'undefined') return false;\n      if (swiper.autoplay.running) return false;\n      swiper.autoplay.running = true;\n      emit('autoplayStart');\n      run();\n      return true;\n    }\n\n    function stop() {\n      if (!swiper.autoplay.running) return false;\n      if (typeof timeout === 'undefined') return false;\n\n      if (timeout) {\n        clearTimeout(timeout);\n        timeout = undefined;\n      }\n\n      swiper.autoplay.running = false;\n      emit('autoplayStop');\n      return true;\n    }\n\n    function pause(speed) {\n      if (!swiper.autoplay.running) return;\n      if (swiper.autoplay.paused) return;\n      if (timeout) clearTimeout(timeout);\n      swiper.autoplay.paused = true;\n\n      if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n        swiper.autoplay.paused = false;\n        run();\n      } else {\n        ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n          swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n        });\n      }\n    }\n\n    function onVisibilityChange() {\n      var document = getDocument();\n\n      if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n        pause();\n      }\n\n      if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n        run();\n        swiper.autoplay.paused = false;\n      }\n    }\n\n    function onTransitionEnd(e) {\n      if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n      if (e.target !== swiper.$wrapperEl[0]) return;\n      ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n        swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n      });\n      swiper.autoplay.paused = false;\n\n      if (!swiper.autoplay.running) {\n        stop();\n      } else {\n        run();\n      }\n    }\n\n    function onMouseEnter() {\n      if (swiper.params.autoplay.disableOnInteraction) {\n        stop();\n      } else {\n        emit('autoplayPause');\n        pause();\n      }\n\n      ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n        swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n      });\n    }\n\n    function onMouseLeave() {\n      if (swiper.params.autoplay.disableOnInteraction) {\n        return;\n      }\n\n      swiper.autoplay.paused = false;\n      emit('autoplayResume');\n      run();\n    }\n\n    function attachMouseEvents() {\n      if (swiper.params.autoplay.pauseOnMouseEnter) {\n        swiper.$el.on('mouseenter', onMouseEnter);\n        swiper.$el.on('mouseleave', onMouseLeave);\n      }\n    }\n\n    function detachMouseEvents() {\n      swiper.$el.off('mouseenter', onMouseEnter);\n      swiper.$el.off('mouseleave', onMouseLeave);\n    }\n\n    on('init', function () {\n      if (swiper.params.autoplay.enabled) {\n        start();\n\n        var _document3 = getDocument();\n\n        _document3.addEventListener('visibilitychange', onVisibilityChange);\n\n        attachMouseEvents();\n      }\n    });\n    on('beforeTransitionStart', function (_s, speed, internal) {\n      if (swiper.autoplay.running) {\n        if (internal || !swiper.params.autoplay.disableOnInteraction) {\n          swiper.autoplay.pause(speed);\n        } else {\n          stop();\n        }\n      }\n    });\n    on('sliderFirstMove', function () {\n      if (swiper.autoplay.running) {\n        if (swiper.params.autoplay.disableOnInteraction) {\n          stop();\n        } else {\n          pause();\n        }\n      }\n    });\n    on('touchEnd', function () {\n      if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n        run();\n      }\n    });\n    on('destroy', function () {\n      detachMouseEvents();\n\n      if (swiper.autoplay.running) {\n        stop();\n      }\n\n      var document = getDocument();\n      document.removeEventListener('visibilitychange', onVisibilityChange);\n    });\n    Object.assign(swiper.autoplay, {\n      pause: pause,\n      run: run,\n      start: start,\n      stop: stop\n    });\n  }\n\n  function Thumb(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      thumbs: {\n        swiper: null,\n        multipleActiveThumbs: true,\n        autoScrollOffset: 0,\n        slideThumbActiveClass: 'swiper-slide-thumb-active',\n        thumbsContainerClass: 'swiper-thumbs'\n      }\n    });\n    var initialized = false;\n    var swiperCreated = false;\n    swiper.thumbs = {\n      swiper: null\n    };\n\n    function onThumbClick() {\n      var thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n      var clickedIndex = thumbsSwiper.clickedIndex;\n      var clickedSlide = thumbsSwiper.clickedSlide;\n      if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n      if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n      var slideToIndex;\n\n      if (thumbsSwiper.params.loop) {\n        slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n      } else {\n        slideToIndex = clickedIndex;\n      }\n\n      if (swiper.params.loop) {\n        var currentIndex = swiper.activeIndex;\n\n        if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n          swiper.loopFix(); // eslint-disable-next-line\n\n          swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n          currentIndex = swiper.activeIndex;\n        }\n\n        var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n        var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n        if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n      }\n\n      swiper.slideTo(slideToIndex);\n    }\n\n    function init() {\n      var thumbsParams = swiper.params.thumbs;\n      if (initialized) return false;\n      initialized = true;\n      var SwiperClass = swiper.constructor;\n\n      if (thumbsParams.swiper instanceof SwiperClass) {\n        swiper.thumbs.swiper = thumbsParams.swiper;\n        Object.assign(swiper.thumbs.swiper.originalParams, {\n          watchSlidesProgress: true,\n          slideToClickedSlide: false\n        });\n        Object.assign(swiper.thumbs.swiper.params, {\n          watchSlidesProgress: true,\n          slideToClickedSlide: false\n        });\n      } else if (isObject(thumbsParams.swiper)) {\n        var thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n        Object.assign(thumbsSwiperParams, {\n          watchSlidesProgress: true,\n          slideToClickedSlide: false\n        });\n        swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n        swiperCreated = true;\n      }\n\n      swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n      swiper.thumbs.swiper.on('tap', onThumbClick);\n      return true;\n    }\n\n    function update(initial) {\n      var thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n      var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; // Activate thumbs\n\n      var thumbsToActivate = 1;\n      var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n      if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n        thumbsToActivate = swiper.params.slidesPerView;\n      }\n\n      if (!swiper.params.thumbs.multipleActiveThumbs) {\n        thumbsToActivate = 1;\n      }\n\n      thumbsToActivate = Math.floor(thumbsToActivate);\n      thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n      if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n        for (var i = 0; i < thumbsToActivate; i += 1) {\n          thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex + i, \"\\\"]\")).addClass(thumbActiveClass);\n        }\n      } else {\n        for (var _i12 = 0; _i12 < thumbsToActivate; _i12 += 1) {\n          thumbsSwiper.slides.eq(swiper.realIndex + _i12).addClass(thumbActiveClass);\n        }\n      }\n\n      var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n      var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n      if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n        var currentThumbsIndex = thumbsSwiper.activeIndex;\n        var newThumbsIndex;\n        var direction;\n\n        if (thumbsSwiper.params.loop) {\n          if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n            thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n            thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n            currentThumbsIndex = thumbsSwiper.activeIndex;\n          } // Find actual thumbs index to slide to\n\n\n          var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n          var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n\n          if (typeof prevThumbsIndex === 'undefined') {\n            newThumbsIndex = nextThumbsIndex;\n          } else if (typeof nextThumbsIndex === 'undefined') {\n            newThumbsIndex = prevThumbsIndex;\n          } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n            newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n          } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n            newThumbsIndex = nextThumbsIndex;\n          } else {\n            newThumbsIndex = prevThumbsIndex;\n          }\n\n          direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n        } else {\n          newThumbsIndex = swiper.realIndex;\n          direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n        }\n\n        if (useOffset) {\n          newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n        }\n\n        if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n          if (thumbsSwiper.params.centeredSlides) {\n            if (newThumbsIndex > currentThumbsIndex) {\n              newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n            } else {\n              newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n            }\n          } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n\n          thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n        }\n      }\n    }\n\n    on('beforeInit', function () {\n      var thumbs = swiper.params.thumbs;\n      if (!thumbs || !thumbs.swiper) return;\n      init();\n      update(true);\n    });\n    on('slideChange update resize observerUpdate', function () {\n      update();\n    });\n    on('setTransition', function (_s, duration) {\n      var thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n      thumbsSwiper.setTransition(duration);\n    });\n    on('beforeDestroy', function () {\n      var thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n      if (swiperCreated) {\n        thumbsSwiper.destroy();\n      }\n    });\n    Object.assign(swiper.thumbs, {\n      init: init,\n      update: update\n    });\n  }\n\n  function freeMode(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        emit = _ref.emit,\n        once = _ref.once;\n    extendParams({\n      freeMode: {\n        enabled: false,\n        momentum: true,\n        momentumRatio: 1,\n        momentumBounce: true,\n        momentumBounceRatio: 1,\n        momentumVelocityRatio: 1,\n        sticky: false,\n        minimumVelocity: 0.02\n      }\n    });\n\n    function onTouchStart() {\n      var translate = swiper.getTranslate();\n      swiper.setTranslate(translate);\n      swiper.setTransition(0);\n      swiper.touchEventsData.velocities.length = 0;\n      swiper.freeMode.onTouchEnd({\n        currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n      });\n    }\n\n    function onTouchMove() {\n      var data = swiper.touchEventsData,\n          touches = swiper.touches; // Velocity\n\n      if (data.velocities.length === 0) {\n        data.velocities.push({\n          position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n          time: data.touchStartTime\n        });\n      }\n\n      data.velocities.push({\n        position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n        time: now()\n      });\n    }\n\n    function onTouchEnd(_ref2) {\n      var currentPos = _ref2.currentPos;\n      var params = swiper.params,\n          $wrapperEl = swiper.$wrapperEl,\n          rtl = swiper.rtlTranslate,\n          snapGrid = swiper.snapGrid,\n          data = swiper.touchEventsData; // Time diff\n\n      var touchEndTime = now();\n      var timeDiff = touchEndTime - data.touchStartTime;\n\n      if (currentPos < -swiper.minTranslate()) {\n        swiper.slideTo(swiper.activeIndex);\n        return;\n      }\n\n      if (currentPos > -swiper.maxTranslate()) {\n        if (swiper.slides.length < snapGrid.length) {\n          swiper.slideTo(snapGrid.length - 1);\n        } else {\n          swiper.slideTo(swiper.slides.length - 1);\n        }\n\n        return;\n      }\n\n      if (params.freeMode.momentum) {\n        if (data.velocities.length > 1) {\n          var lastMoveEvent = data.velocities.pop();\n          var velocityEvent = data.velocities.pop();\n          var distance = lastMoveEvent.position - velocityEvent.position;\n          var time = lastMoveEvent.time - velocityEvent.time;\n          swiper.velocity = distance / time;\n          swiper.velocity /= 2;\n\n          if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n            swiper.velocity = 0;\n          } // this implies that the user stopped moving a finger then released.\n          // There would be no events with distance zero, so the last event is stale.\n\n\n          if (time > 150 || now() - lastMoveEvent.time > 300) {\n            swiper.velocity = 0;\n          }\n        } else {\n          swiper.velocity = 0;\n        }\n\n        swiper.velocity *= params.freeMode.momentumVelocityRatio;\n        data.velocities.length = 0;\n        var momentumDuration = 1000 * params.freeMode.momentumRatio;\n        var momentumDistance = swiper.velocity * momentumDuration;\n        var newPosition = swiper.translate + momentumDistance;\n        if (rtl) newPosition = -newPosition;\n        var doBounce = false;\n        var afterBouncePosition;\n        var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n        var needsLoopFix;\n\n        if (newPosition < swiper.maxTranslate()) {\n          if (params.freeMode.momentumBounce) {\n            if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n              newPosition = swiper.maxTranslate() - bounceAmount;\n            }\n\n            afterBouncePosition = swiper.maxTranslate();\n            doBounce = true;\n            data.allowMomentumBounce = true;\n          } else {\n            newPosition = swiper.maxTranslate();\n          }\n\n          if (params.loop && params.centeredSlides) needsLoopFix = true;\n        } else if (newPosition > swiper.minTranslate()) {\n          if (params.freeMode.momentumBounce) {\n            if (newPosition - swiper.minTranslate() > bounceAmount) {\n              newPosition = swiper.minTranslate() + bounceAmount;\n            }\n\n            afterBouncePosition = swiper.minTranslate();\n            doBounce = true;\n            data.allowMomentumBounce = true;\n          } else {\n            newPosition = swiper.minTranslate();\n          }\n\n          if (params.loop && params.centeredSlides) needsLoopFix = true;\n        } else if (params.freeMode.sticky) {\n          var nextSlide;\n\n          for (var j = 0; j < snapGrid.length; j += 1) {\n            if (snapGrid[j] > -newPosition) {\n              nextSlide = j;\n              break;\n            }\n          }\n\n          if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n            newPosition = snapGrid[nextSlide];\n          } else {\n            newPosition = snapGrid[nextSlide - 1];\n          }\n\n          newPosition = -newPosition;\n        }\n\n        if (needsLoopFix) {\n          once('transitionEnd', function () {\n            swiper.loopFix();\n          });\n        } // Fix duration\n\n\n        if (swiper.velocity !== 0) {\n          if (rtl) {\n            momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n          } else {\n            momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n          }\n\n          if (params.freeMode.sticky) {\n            // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n            // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n            // It's easy to see this when simulating touch with mouse events. To fix this,\n            // limit single-slide swipes to the default slide duration. This also has the\n            // nice side effect of matching slide speed if the user stopped moving before\n            // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n            // For faster swipes, also apply limits (albeit higher ones).\n            var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n            var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n            if (moveDistance < currentSlideSize) {\n              momentumDuration = params.speed;\n            } else if (moveDistance < 2 * currentSlideSize) {\n              momentumDuration = params.speed * 1.5;\n            } else {\n              momentumDuration = params.speed * 2.5;\n            }\n          }\n        } else if (params.freeMode.sticky) {\n          swiper.slideToClosest();\n          return;\n        }\n\n        if (params.freeMode.momentumBounce && doBounce) {\n          swiper.updateProgress(afterBouncePosition);\n          swiper.setTransition(momentumDuration);\n          swiper.setTranslate(newPosition);\n          swiper.transitionStart(true, swiper.swipeDirection);\n          swiper.animating = true;\n          $wrapperEl.transitionEnd(function () {\n            if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n            emit('momentumBounce');\n            swiper.setTransition(params.speed);\n            setTimeout(function () {\n              swiper.setTranslate(afterBouncePosition);\n              $wrapperEl.transitionEnd(function () {\n                if (!swiper || swiper.destroyed) return;\n                swiper.transitionEnd();\n              });\n            }, 0);\n          });\n        } else if (swiper.velocity) {\n          emit('_freeModeNoMomentumRelease');\n          swiper.updateProgress(newPosition);\n          swiper.setTransition(momentumDuration);\n          swiper.setTranslate(newPosition);\n          swiper.transitionStart(true, swiper.swipeDirection);\n\n          if (!swiper.animating) {\n            swiper.animating = true;\n            $wrapperEl.transitionEnd(function () {\n              if (!swiper || swiper.destroyed) return;\n              swiper.transitionEnd();\n            });\n          }\n        } else {\n          swiper.updateProgress(newPosition);\n        }\n\n        swiper.updateActiveIndex();\n        swiper.updateSlidesClasses();\n      } else if (params.freeMode.sticky) {\n        swiper.slideToClosest();\n        return;\n      } else if (params.freeMode) {\n        emit('_freeModeNoMomentumRelease');\n      }\n\n      if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n        swiper.updateProgress();\n        swiper.updateActiveIndex();\n        swiper.updateSlidesClasses();\n      }\n    }\n\n    Object.assign(swiper, {\n      freeMode: {\n        onTouchStart: onTouchStart,\n        onTouchMove: onTouchMove,\n        onTouchEnd: onTouchEnd\n      }\n    });\n  }\n\n  function Grid(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams;\n    extendParams({\n      grid: {\n        rows: 1,\n        fill: 'column'\n      }\n    });\n    var slidesNumberEvenToRows;\n    var slidesPerRow;\n    var numFullColumns;\n\n    var initSlides = function initSlides(slidesLength) {\n      var slidesPerView = swiper.params.slidesPerView;\n      var _swiper$params$grid = swiper.params.grid,\n          rows = _swiper$params$grid.rows,\n          fill = _swiper$params$grid.fill;\n      slidesPerRow = slidesNumberEvenToRows / rows;\n      numFullColumns = Math.floor(slidesLength / rows);\n\n      if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n        slidesNumberEvenToRows = slidesLength;\n      } else {\n        slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n      }\n\n      if (slidesPerView !== 'auto' && fill === 'row') {\n        slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n      }\n    };\n\n    var updateSlide = function updateSlide(i, slide, slidesLength, getDirectionLabel) {\n      var _swiper$params3 = swiper.params,\n          slidesPerGroup = _swiper$params3.slidesPerGroup,\n          spaceBetween = _swiper$params3.spaceBetween;\n      var _swiper$params$grid2 = swiper.params.grid,\n          rows = _swiper$params$grid2.rows,\n          fill = _swiper$params$grid2.fill; // Set slides order\n\n      var newSlideOrderIndex;\n      var column;\n      var row;\n\n      if (fill === 'row' && slidesPerGroup > 1) {\n        var groupIndex = Math.floor(i / (slidesPerGroup * rows));\n        var slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n        var columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n        row = Math.floor(slideIndexInGroup / columnsInGroup);\n        column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n        newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n        slide.css({\n          '-webkit-order': newSlideOrderIndex,\n          order: newSlideOrderIndex\n        });\n      } else if (fill === 'column') {\n        column = Math.floor(i / rows);\n        row = i - column * rows;\n\n        if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n          row += 1;\n\n          if (row >= rows) {\n            row = 0;\n            column += 1;\n          }\n        }\n      } else {\n        row = Math.floor(i / slidesPerRow);\n        column = i - row * slidesPerRow;\n      }\n\n      slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && \"\".concat(spaceBetween, \"px\") : '');\n    };\n\n    var updateWrapperSize = function updateWrapperSize(slideSize, snapGrid, getDirectionLabel) {\n      var _swiper$params4 = swiper.params,\n          spaceBetween = _swiper$params4.spaceBetween,\n          centeredSlides = _swiper$params4.centeredSlides,\n          roundLengths = _swiper$params4.roundLengths;\n      var rows = swiper.params.grid.rows;\n      swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n      swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n      swiper.$wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + spaceBetween, \"px\")));\n\n      if (centeredSlides) {\n        snapGrid.splice(0, snapGrid.length);\n        var newSlidesGrid = [];\n\n        for (var i = 0; i < snapGrid.length; i += 1) {\n          var slidesGridItem = snapGrid[i];\n          if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n          if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n        }\n\n        snapGrid.push.apply(snapGrid, newSlidesGrid);\n      }\n    };\n\n    swiper.grid = {\n      initSlides: initSlides,\n      updateSlide: updateSlide,\n      updateWrapperSize: updateWrapperSize\n    };\n  }\n\n  function appendSlide(slides) {\n    var swiper = this;\n    var $wrapperEl = swiper.$wrapperEl,\n        params = swiper.params;\n\n    if (params.loop) {\n      swiper.loopDestroy();\n    }\n\n    if (_typeof(slides) === 'object' && 'length' in slides) {\n      for (var i = 0; i < slides.length; i += 1) {\n        if (slides[i]) $wrapperEl.append(slides[i]);\n      }\n    } else {\n      $wrapperEl.append(slides);\n    }\n\n    if (params.loop) {\n      swiper.loopCreate();\n    }\n\n    if (!params.observer) {\n      swiper.update();\n    }\n  }\n\n  function prependSlide(slides) {\n    var swiper = this;\n    var params = swiper.params,\n        $wrapperEl = swiper.$wrapperEl,\n        activeIndex = swiper.activeIndex;\n\n    if (params.loop) {\n      swiper.loopDestroy();\n    }\n\n    var newActiveIndex = activeIndex + 1;\n\n    if (_typeof(slides) === 'object' && 'length' in slides) {\n      for (var i = 0; i < slides.length; i += 1) {\n        if (slides[i]) $wrapperEl.prepend(slides[i]);\n      }\n\n      newActiveIndex = activeIndex + slides.length;\n    } else {\n      $wrapperEl.prepend(slides);\n    }\n\n    if (params.loop) {\n      swiper.loopCreate();\n    }\n\n    if (!params.observer) {\n      swiper.update();\n    }\n\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n\n  function addSlide(index, slides) {\n    var swiper = this;\n    var $wrapperEl = swiper.$wrapperEl,\n        params = swiper.params,\n        activeIndex = swiper.activeIndex;\n    var activeIndexBuffer = activeIndex;\n\n    if (params.loop) {\n      activeIndexBuffer -= swiper.loopedSlides;\n      swiper.loopDestroy();\n      swiper.slides = $wrapperEl.children(\".\".concat(params.slideClass));\n    }\n\n    var baseLength = swiper.slides.length;\n\n    if (index <= 0) {\n      swiper.prependSlide(slides);\n      return;\n    }\n\n    if (index >= baseLength) {\n      swiper.appendSlide(slides);\n      return;\n    }\n\n    var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n    var slidesBuffer = [];\n\n    for (var i = baseLength - 1; i >= index; i -= 1) {\n      var currentSlide = swiper.slides.eq(i);\n      currentSlide.remove();\n      slidesBuffer.unshift(currentSlide);\n    }\n\n    if (_typeof(slides) === 'object' && 'length' in slides) {\n      for (var _i13 = 0; _i13 < slides.length; _i13 += 1) {\n        if (slides[_i13]) $wrapperEl.append(slides[_i13]);\n      }\n\n      newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n    } else {\n      $wrapperEl.append(slides);\n    }\n\n    for (var _i14 = 0; _i14 < slidesBuffer.length; _i14 += 1) {\n      $wrapperEl.append(slidesBuffer[_i14]);\n    }\n\n    if (params.loop) {\n      swiper.loopCreate();\n    }\n\n    if (!params.observer) {\n      swiper.update();\n    }\n\n    if (params.loop) {\n      swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n    } else {\n      swiper.slideTo(newActiveIndex, 0, false);\n    }\n  }\n\n  function removeSlide(slidesIndexes) {\n    var swiper = this;\n    var params = swiper.params,\n        $wrapperEl = swiper.$wrapperEl,\n        activeIndex = swiper.activeIndex;\n    var activeIndexBuffer = activeIndex;\n\n    if (params.loop) {\n      activeIndexBuffer -= swiper.loopedSlides;\n      swiper.loopDestroy();\n      swiper.slides = $wrapperEl.children(\".\".concat(params.slideClass));\n    }\n\n    var newActiveIndex = activeIndexBuffer;\n    var indexToRemove;\n\n    if (_typeof(slidesIndexes) === 'object' && 'length' in slidesIndexes) {\n      for (var i = 0; i < slidesIndexes.length; i += 1) {\n        indexToRemove = slidesIndexes[i];\n        if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n        if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n      }\n\n      newActiveIndex = Math.max(newActiveIndex, 0);\n    } else {\n      indexToRemove = slidesIndexes;\n      if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n      newActiveIndex = Math.max(newActiveIndex, 0);\n    }\n\n    if (params.loop) {\n      swiper.loopCreate();\n    }\n\n    if (!params.observer) {\n      swiper.update();\n    }\n\n    if (params.loop) {\n      swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n    } else {\n      swiper.slideTo(newActiveIndex, 0, false);\n    }\n  }\n\n  function removeAllSlides() {\n    var swiper = this;\n    var slidesIndexes = [];\n\n    for (var i = 0; i < swiper.slides.length; i += 1) {\n      slidesIndexes.push(i);\n    }\n\n    swiper.removeSlide(slidesIndexes);\n  }\n\n  function Manipulation(_ref) {\n    var swiper = _ref.swiper;\n    Object.assign(swiper, {\n      appendSlide: appendSlide.bind(swiper),\n      prependSlide: prependSlide.bind(swiper),\n      addSlide: addSlide.bind(swiper),\n      removeSlide: removeSlide.bind(swiper),\n      removeAllSlides: removeAllSlides.bind(swiper)\n    });\n  }\n\n  function effectInit(params) {\n    var effect = params.effect,\n        swiper = params.swiper,\n        on = params.on,\n        setTranslate = params.setTranslate,\n        setTransition = params.setTransition,\n        overwriteParams = params.overwriteParams,\n        perspective = params.perspective,\n        recreateShadows = params.recreateShadows,\n        getEffectParams = params.getEffectParams;\n    on('beforeInit', function () {\n      if (swiper.params.effect !== effect) return;\n      swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass).concat(effect));\n\n      if (perspective && perspective()) {\n        swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"3d\"));\n      }\n\n      var overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n      Object.assign(swiper.params, overwriteParamsResult);\n      Object.assign(swiper.originalParams, overwriteParamsResult);\n    });\n    on('setTranslate', function () {\n      if (swiper.params.effect !== effect) return;\n      setTranslate();\n    });\n    on('setTransition', function (_s, duration) {\n      if (swiper.params.effect !== effect) return;\n      setTransition(duration);\n    });\n    on('transitionEnd', function () {\n      if (swiper.params.effect !== effect) return;\n\n      if (recreateShadows) {\n        if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows\n\n        swiper.slides.each(function (slideEl) {\n          var $slideEl = swiper.$(slideEl);\n          $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();\n        }); // create new one\n\n        recreateShadows();\n      }\n    });\n    var requireUpdateOnVirtual;\n    on('virtualUpdate', function () {\n      if (swiper.params.effect !== effect) return;\n\n      if (!swiper.slides.length) {\n        requireUpdateOnVirtual = true;\n      }\n\n      requestAnimationFrame(function () {\n        if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n          setTranslate();\n          requireUpdateOnVirtual = false;\n        }\n      });\n    });\n  }\n\n  function effectTarget(effectParams, $slideEl) {\n    if (effectParams.transformEl) {\n      return $slideEl.find(effectParams.transformEl).css({\n        'backface-visibility': 'hidden',\n        '-webkit-backface-visibility': 'hidden'\n      });\n    }\n\n    return $slideEl;\n  }\n\n  function effectVirtualTransitionEnd(_ref) {\n    var swiper = _ref.swiper,\n        duration = _ref.duration,\n        transformEl = _ref.transformEl,\n        allSlides = _ref.allSlides;\n    var slides = swiper.slides,\n        activeIndex = swiper.activeIndex,\n        $wrapperEl = swiper.$wrapperEl;\n\n    if (swiper.params.virtualTranslate && duration !== 0) {\n      var eventTriggered = false;\n      var $transitionEndTarget;\n\n      if (allSlides) {\n        $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n      } else {\n        $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n      }\n\n      $transitionEndTarget.transitionEnd(function () {\n        if (eventTriggered) return;\n        if (!swiper || swiper.destroyed) return;\n        eventTriggered = true;\n        swiper.animating = false;\n        var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n        for (var i = 0; i < triggerEvents.length; i += 1) {\n          $wrapperEl.trigger(triggerEvents[i]);\n        }\n      });\n    }\n  }\n\n  function EffectFade(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      fadeEffect: {\n        crossFade: false,\n        transformEl: null\n      }\n    });\n\n    var setTranslate = function setTranslate() {\n      var slides = swiper.slides;\n      var params = swiper.params.fadeEffect;\n\n      for (var i = 0; i < slides.length; i += 1) {\n        var $slideEl = swiper.slides.eq(i);\n        var _offset = $slideEl[0].swiperSlideOffset;\n        var tx = -_offset;\n        if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n        var ty = 0;\n\n        if (!swiper.isHorizontal()) {\n          ty = tx;\n          tx = 0;\n        }\n\n        var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n        var $targetEl = effectTarget(params, $slideEl);\n        $targetEl.css({\n          opacity: slideOpacity\n        }).transform(\"translate3d(\".concat(tx, \"px, \").concat(ty, \"px, 0px)\"));\n      }\n    };\n\n    var setTransition = function setTransition(duration) {\n      var transformEl = swiper.params.fadeEffect.transformEl;\n      var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n      $transitionElements.transition(duration);\n      effectVirtualTransitionEnd({\n        swiper: swiper,\n        duration: duration,\n        transformEl: transformEl,\n        allSlides: true\n      });\n    };\n\n    effectInit({\n      effect: 'fade',\n      swiper: swiper,\n      on: on,\n      setTranslate: setTranslate,\n      setTransition: setTransition,\n      overwriteParams: function overwriteParams() {\n        return {\n          slidesPerView: 1,\n          slidesPerGroup: 1,\n          watchSlidesProgress: true,\n          spaceBetween: 0,\n          virtualTranslate: !swiper.params.cssMode\n        };\n      }\n    });\n  }\n\n  function EffectCube(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      cubeEffect: {\n        slideShadows: true,\n        shadow: true,\n        shadowOffset: 20,\n        shadowScale: 0.94\n      }\n    });\n\n    var createSlideShadows = function createSlideShadows($slideEl, progress, isHorizontal) {\n      var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n      var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n      if (shadowBefore.length === 0) {\n        shadowBefore = $(\"<div class=\\\"swiper-slide-shadow-\".concat(isHorizontal ? 'left' : 'top', \"\\\"></div>\"));\n        $slideEl.append(shadowBefore);\n      }\n\n      if (shadowAfter.length === 0) {\n        shadowAfter = $(\"<div class=\\\"swiper-slide-shadow-\".concat(isHorizontal ? 'right' : 'bottom', \"\\\"></div>\"));\n        $slideEl.append(shadowAfter);\n      }\n\n      if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n      if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n    };\n\n    var recreateShadows = function recreateShadows() {\n      // create new ones\n      var isHorizontal = swiper.isHorizontal();\n      swiper.slides.each(function (slideEl) {\n        var progress = Math.max(Math.min(slideEl.progress, 1), -1);\n        createSlideShadows($(slideEl), progress, isHorizontal);\n      });\n    };\n\n    var setTranslate = function setTranslate() {\n      var $el = swiper.$el,\n          $wrapperEl = swiper.$wrapperEl,\n          slides = swiper.slides,\n          swiperWidth = swiper.width,\n          swiperHeight = swiper.height,\n          rtl = swiper.rtlTranslate,\n          swiperSize = swiper.size,\n          browser = swiper.browser;\n      var params = swiper.params.cubeEffect;\n      var isHorizontal = swiper.isHorizontal();\n      var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n      var wrapperRotate = 0;\n      var $cubeShadowEl;\n\n      if (params.shadow) {\n        if (isHorizontal) {\n          $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n          if ($cubeShadowEl.length === 0) {\n            $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n            $wrapperEl.append($cubeShadowEl);\n          }\n\n          $cubeShadowEl.css({\n            height: \"\".concat(swiperWidth, \"px\")\n          });\n        } else {\n          $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n          if ($cubeShadowEl.length === 0) {\n            $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n            $el.append($cubeShadowEl);\n          }\n        }\n      }\n\n      for (var i = 0; i < slides.length; i += 1) {\n        var $slideEl = slides.eq(i);\n        var slideIndex = i;\n\n        if (isVirtual) {\n          slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n        }\n\n        var slideAngle = slideIndex * 90;\n        var round = Math.floor(slideAngle / 360);\n\n        if (rtl) {\n          slideAngle = -slideAngle;\n          round = Math.floor(-slideAngle / 360);\n        }\n\n        var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n        var tx = 0;\n        var ty = 0;\n        var tz = 0;\n\n        if (slideIndex % 4 === 0) {\n          tx = -round * 4 * swiperSize;\n          tz = 0;\n        } else if ((slideIndex - 1) % 4 === 0) {\n          tx = 0;\n          tz = -round * 4 * swiperSize;\n        } else if ((slideIndex - 2) % 4 === 0) {\n          tx = swiperSize + round * 4 * swiperSize;\n          tz = swiperSize;\n        } else if ((slideIndex - 3) % 4 === 0) {\n          tx = -swiperSize;\n          tz = 3 * swiperSize + swiperSize * 4 * round;\n        }\n\n        if (rtl) {\n          tx = -tx;\n        }\n\n        if (!isHorizontal) {\n          ty = tx;\n          tx = 0;\n        }\n\n        var _transform = \"rotateX(\".concat(isHorizontal ? 0 : -slideAngle, \"deg) rotateY(\").concat(isHorizontal ? slideAngle : 0, \"deg) translate3d(\").concat(tx, \"px, \").concat(ty, \"px, \").concat(tz, \"px)\");\n\n        if (progress <= 1 && progress > -1) {\n          wrapperRotate = slideIndex * 90 + progress * 90;\n          if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n        }\n\n        $slideEl.transform(_transform);\n\n        if (params.slideShadows) {\n          createSlideShadows($slideEl, progress, isHorizontal);\n        }\n      }\n\n      $wrapperEl.css({\n        '-webkit-transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\"),\n        'transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\")\n      });\n\n      if (params.shadow) {\n        if (isHorizontal) {\n          $cubeShadowEl.transform(\"translate3d(0px, \".concat(swiperWidth / 2 + params.shadowOffset, \"px, \").concat(-swiperWidth / 2, \"px) rotateX(90deg) rotateZ(0deg) scale(\").concat(params.shadowScale, \")\"));\n        } else {\n          var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n          var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n          var scale1 = params.shadowScale;\n          var scale2 = params.shadowScale / multiplier;\n          var _offset2 = params.shadowOffset;\n          $cubeShadowEl.transform(\"scale3d(\".concat(scale1, \", 1, \").concat(scale2, \") translate3d(0px, \").concat(swiperHeight / 2 + _offset2, \"px, \").concat(-swiperHeight / 2 / scale2, \"px) rotateX(-90deg)\"));\n        }\n      }\n\n      var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n      $wrapperEl.transform(\"translate3d(0px,0,\".concat(zFactor, \"px) rotateX(\").concat(swiper.isHorizontal() ? 0 : wrapperRotate, \"deg) rotateY(\").concat(swiper.isHorizontal() ? -wrapperRotate : 0, \"deg)\"));\n      $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', \"\".concat(zFactor, \"px\"));\n    };\n\n    var setTransition = function setTransition(duration) {\n      var $el = swiper.$el,\n          slides = swiper.slides;\n      slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n      if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n        $el.find('.swiper-cube-shadow').transition(duration);\n      }\n    };\n\n    effectInit({\n      effect: 'cube',\n      swiper: swiper,\n      on: on,\n      setTranslate: setTranslate,\n      setTransition: setTransition,\n      recreateShadows: recreateShadows,\n      getEffectParams: function getEffectParams() {\n        return swiper.params.cubeEffect;\n      },\n      perspective: function perspective() {\n        return true;\n      },\n      overwriteParams: function overwriteParams() {\n        return {\n          slidesPerView: 1,\n          slidesPerGroup: 1,\n          watchSlidesProgress: true,\n          resistanceRatio: 0,\n          spaceBetween: 0,\n          centeredSlides: false,\n          virtualTranslate: true\n        };\n      }\n    });\n  }\n\n  function createShadow(params, $slideEl, side) {\n    var shadowClass = \"swiper-slide-shadow\".concat(side ? \"-\".concat(side) : '');\n    var $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n    var $shadowEl = $shadowContainer.children(\".\".concat(shadowClass));\n\n    if (!$shadowEl.length) {\n      $shadowEl = $(\"<div class=\\\"swiper-slide-shadow\".concat(side ? \"-\".concat(side) : '', \"\\\"></div>\"));\n      $shadowContainer.append($shadowEl);\n    }\n\n    return $shadowEl;\n  }\n\n  function EffectFlip(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      flipEffect: {\n        slideShadows: true,\n        limitRotation: true,\n        transformEl: null\n      }\n    });\n\n    var createSlideShadows = function createSlideShadows($slideEl, progress, params) {\n      var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n      var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n      if (shadowBefore.length === 0) {\n        shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n      }\n\n      if (shadowAfter.length === 0) {\n        shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n      }\n\n      if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n      if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n    };\n\n    var recreateShadows = function recreateShadows() {\n      // Set shadows\n      var params = swiper.params.flipEffect;\n      swiper.slides.each(function (slideEl) {\n        var $slideEl = $(slideEl);\n        var progress = $slideEl[0].progress;\n\n        if (swiper.params.flipEffect.limitRotation) {\n          progress = Math.max(Math.min(slideEl.progress, 1), -1);\n        }\n\n        createSlideShadows($slideEl, progress, params);\n      });\n    };\n\n    var setTranslate = function setTranslate() {\n      var slides = swiper.slides,\n          rtl = swiper.rtlTranslate;\n      var params = swiper.params.flipEffect;\n\n      for (var i = 0; i < slides.length; i += 1) {\n        var $slideEl = slides.eq(i);\n        var progress = $slideEl[0].progress;\n\n        if (swiper.params.flipEffect.limitRotation) {\n          progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n        }\n\n        var _offset3 = $slideEl[0].swiperSlideOffset;\n        var rotate = -180 * progress;\n        var rotateY = rotate;\n        var rotateX = 0;\n        var tx = swiper.params.cssMode ? -_offset3 - swiper.translate : -_offset3;\n        var ty = 0;\n\n        if (!swiper.isHorizontal()) {\n          ty = tx;\n          tx = 0;\n          rotateX = -rotateY;\n          rotateY = 0;\n        } else if (rtl) {\n          rotateY = -rotateY;\n        }\n\n        $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n        if (params.slideShadows) {\n          createSlideShadows($slideEl, progress, params);\n        }\n\n        var _transform2 = \"translate3d(\".concat(tx, \"px, \").concat(ty, \"px, 0px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg)\");\n\n        var $targetEl = effectTarget(params, $slideEl);\n        $targetEl.transform(_transform2);\n      }\n    };\n\n    var setTransition = function setTransition(duration) {\n      var transformEl = swiper.params.flipEffect.transformEl;\n      var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n      $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n      effectVirtualTransitionEnd({\n        swiper: swiper,\n        duration: duration,\n        transformEl: transformEl\n      });\n    };\n\n    effectInit({\n      effect: 'flip',\n      swiper: swiper,\n      on: on,\n      setTranslate: setTranslate,\n      setTransition: setTransition,\n      recreateShadows: recreateShadows,\n      getEffectParams: function getEffectParams() {\n        return swiper.params.flipEffect;\n      },\n      perspective: function perspective() {\n        return true;\n      },\n      overwriteParams: function overwriteParams() {\n        return {\n          slidesPerView: 1,\n          slidesPerGroup: 1,\n          watchSlidesProgress: true,\n          spaceBetween: 0,\n          virtualTranslate: !swiper.params.cssMode\n        };\n      }\n    });\n  }\n\n  function EffectCoverflow(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      coverflowEffect: {\n        rotate: 50,\n        stretch: 0,\n        depth: 100,\n        scale: 1,\n        modifier: 1,\n        slideShadows: true,\n        transformEl: null\n      }\n    });\n\n    var setTranslate = function setTranslate() {\n      var swiperWidth = swiper.width,\n          swiperHeight = swiper.height,\n          slides = swiper.slides,\n          slidesSizesGrid = swiper.slidesSizesGrid;\n      var params = swiper.params.coverflowEffect;\n      var isHorizontal = swiper.isHorizontal();\n      var transform = swiper.translate;\n      var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n      var rotate = isHorizontal ? params.rotate : -params.rotate;\n      var translate = params.depth; // Each slide offset from center\n\n      for (var i = 0, length = slides.length; i < length; i += 1) {\n        var $slideEl = slides.eq(i);\n        var slideSize = slidesSizesGrid[i];\n        var slideOffset = $slideEl[0].swiperSlideOffset;\n        var centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n        var offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n        var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n        var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n        var translateZ = -translate * Math.abs(offsetMultiplier);\n        var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n        if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n          stretch = parseFloat(params.stretch) / 100 * slideSize;\n        }\n\n        var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n        var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n        var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n        if (Math.abs(translateX) < 0.001) translateX = 0;\n        if (Math.abs(translateY) < 0.001) translateY = 0;\n        if (Math.abs(translateZ) < 0.001) translateZ = 0;\n        if (Math.abs(rotateY) < 0.001) rotateY = 0;\n        if (Math.abs(rotateX) < 0.001) rotateX = 0;\n        if (Math.abs(scale) < 0.001) scale = 0;\n        var slideTransform = \"translate3d(\".concat(translateX, \"px,\").concat(translateY, \"px,\").concat(translateZ, \"px)  rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg) scale(\").concat(scale, \")\");\n        var $targetEl = effectTarget(params, $slideEl);\n        $targetEl.transform(slideTransform);\n        $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n        if (params.slideShadows) {\n          // Set shadows\n          var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n          var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n          if ($shadowBeforeEl.length === 0) {\n            $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n          }\n\n          if ($shadowAfterEl.length === 0) {\n            $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n          }\n\n          if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n          if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n        }\n      }\n    };\n\n    var setTransition = function setTransition(duration) {\n      var transformEl = swiper.params.coverflowEffect.transformEl;\n      var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n      $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n    };\n\n    effectInit({\n      effect: 'coverflow',\n      swiper: swiper,\n      on: on,\n      setTranslate: setTranslate,\n      setTransition: setTransition,\n      perspective: function perspective() {\n        return true;\n      },\n      overwriteParams: function overwriteParams() {\n        return {\n          watchSlidesProgress: true\n        };\n      }\n    });\n  }\n\n  function EffectCreative(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      creativeEffect: {\n        transformEl: null,\n        limitProgress: 1,\n        shadowPerProgress: false,\n        progressMultiplier: 1,\n        perspective: true,\n        prev: {\n          translate: [0, 0, 0],\n          rotate: [0, 0, 0],\n          opacity: 1,\n          scale: 1\n        },\n        next: {\n          translate: [0, 0, 0],\n          rotate: [0, 0, 0],\n          opacity: 1,\n          scale: 1\n        }\n      }\n    });\n\n    var getTranslateValue = function getTranslateValue(value) {\n      if (typeof value === 'string') return value;\n      return \"\".concat(value, \"px\");\n    };\n\n    var setTranslate = function setTranslate() {\n      var slides = swiper.slides,\n          $wrapperEl = swiper.$wrapperEl,\n          slidesSizesGrid = swiper.slidesSizesGrid;\n      var params = swiper.params.creativeEffect;\n      var multiplier = params.progressMultiplier;\n      var isCenteredSlides = swiper.params.centeredSlides;\n\n      if (isCenteredSlides) {\n        var margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n        $wrapperEl.transform(\"translateX(calc(50% - \".concat(margin, \"px))\"));\n      }\n\n      var _loop = function _loop(i) {\n        var $slideEl = slides.eq(i);\n        var slideProgress = $slideEl[0].progress;\n        var progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n        var originalProgress = progress;\n\n        if (!isCenteredSlides) {\n          originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n        }\n\n        var offset = $slideEl[0].swiperSlideOffset;\n        var t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n        var r = [0, 0, 0];\n        var custom = false;\n\n        if (!swiper.isHorizontal()) {\n          t[1] = t[0];\n          t[0] = 0;\n        }\n\n        var data = {\n          translate: [0, 0, 0],\n          rotate: [0, 0, 0],\n          scale: 1,\n          opacity: 1\n        };\n\n        if (progress < 0) {\n          data = params.next;\n          custom = true;\n        } else if (progress > 0) {\n          data = params.prev;\n          custom = true;\n        } // set translate\n\n\n        t.forEach(function (value, index) {\n          t[index] = \"calc(\".concat(value, \"px + (\").concat(getTranslateValue(data.translate[index]), \" * \").concat(Math.abs(progress * multiplier), \"))\");\n        }); // set rotates\n\n        r.forEach(function (value, index) {\n          r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n        });\n        $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n        var translateString = t.join(', ');\n        var rotateString = \"rotateX(\".concat(r[0], \"deg) rotateY(\").concat(r[1], \"deg) rotateZ(\").concat(r[2], \"deg)\");\n        var scaleString = originalProgress < 0 ? \"scale(\".concat(1 + (1 - data.scale) * originalProgress * multiplier, \")\") : \"scale(\".concat(1 - (1 - data.scale) * originalProgress * multiplier, \")\");\n        var opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n        var transform = \"translate3d(\".concat(translateString, \") \").concat(rotateString, \" \").concat(scaleString); // Set shadows\n\n        if (custom && data.shadow || !custom) {\n          var $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n          if ($shadowEl.length === 0 && data.shadow) {\n            $shadowEl = createShadow(params, $slideEl);\n          }\n\n          if ($shadowEl.length) {\n            var shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n            $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n          }\n        }\n\n        var $targetEl = effectTarget(params, $slideEl);\n        $targetEl.transform(transform).css({\n          opacity: opacityString\n        });\n\n        if (data.origin) {\n          $targetEl.css('transform-origin', data.origin);\n        }\n      };\n\n      for (var i = 0; i < slides.length; i += 1) {\n        _loop(i);\n      }\n    };\n\n    var setTransition = function setTransition(duration) {\n      var transformEl = swiper.params.creativeEffect.transformEl;\n      var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n      $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n      effectVirtualTransitionEnd({\n        swiper: swiper,\n        duration: duration,\n        transformEl: transformEl,\n        allSlides: true\n      });\n    };\n\n    effectInit({\n      effect: 'creative',\n      swiper: swiper,\n      on: on,\n      setTranslate: setTranslate,\n      setTransition: setTransition,\n      perspective: function perspective() {\n        return swiper.params.creativeEffect.perspective;\n      },\n      overwriteParams: function overwriteParams() {\n        return {\n          watchSlidesProgress: true,\n          virtualTranslate: !swiper.params.cssMode\n        };\n      }\n    });\n  }\n\n  function EffectCards(_ref) {\n    var swiper = _ref.swiper,\n        extendParams = _ref.extendParams,\n        on = _ref.on;\n    extendParams({\n      cardsEffect: {\n        slideShadows: true,\n        transformEl: null,\n        rotate: true,\n        perSlideRotate: 2,\n        perSlideOffset: 8\n      }\n    });\n\n    var setTranslate = function setTranslate() {\n      var slides = swiper.slides,\n          activeIndex = swiper.activeIndex;\n      var params = swiper.params.cardsEffect;\n      var _swiper$touchEventsDa = swiper.touchEventsData,\n          startTranslate = _swiper$touchEventsDa.startTranslate,\n          isTouched = _swiper$touchEventsDa.isTouched;\n      var currentTranslate = swiper.translate;\n\n      for (var i = 0; i < slides.length; i += 1) {\n        var $slideEl = slides.eq(i);\n        var slideProgress = $slideEl[0].progress;\n        var progress = Math.min(Math.max(slideProgress, -4), 4);\n        var _offset4 = $slideEl[0].swiperSlideOffset;\n\n        if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n          swiper.$wrapperEl.transform(\"translateX(\".concat(swiper.minTranslate(), \"px)\"));\n        }\n\n        if (swiper.params.centeredSlides && swiper.params.cssMode) {\n          _offset4 -= slides[0].swiperSlideOffset;\n        }\n\n        var tX = swiper.params.cssMode ? -_offset4 - swiper.translate : -_offset4;\n        var tY = 0;\n        var tZ = -100 * Math.abs(progress);\n        var scale = 1;\n        var rotate = -params.perSlideRotate * progress;\n        var tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n        var slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n        var isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n        var isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n        if (isSwipeToNext || isSwipeToPrev) {\n          var subProgress = Math.pow(1 - Math.abs((Math.abs(progress) - 0.5) / 0.5), 0.5);\n          rotate += -28 * progress * subProgress;\n          scale += -0.5 * subProgress;\n          tXAdd += 96 * subProgress;\n          tY = \"\".concat(-25 * subProgress * Math.abs(progress), \"%\");\n        }\n\n        if (progress < 0) {\n          // next\n          tX = \"calc(\".concat(tX, \"px + (\").concat(tXAdd * Math.abs(progress), \"%))\");\n        } else if (progress > 0) {\n          // prev\n          tX = \"calc(\".concat(tX, \"px + (-\").concat(tXAdd * Math.abs(progress), \"%))\");\n        } else {\n          tX = \"\".concat(tX, \"px\");\n        }\n\n        if (!swiper.isHorizontal()) {\n          var prevY = tY;\n          tY = tX;\n          tX = prevY;\n        }\n\n        var scaleString = progress < 0 ? \"\".concat(1 + (1 - scale) * progress) : \"\".concat(1 - (1 - scale) * progress);\n\n        var _transform3 = \"\\n        translate3d(\".concat(tX, \", \").concat(tY, \", \").concat(tZ, \"px)\\n        rotateZ(\").concat(params.rotate ? rotate : 0, \"deg)\\n        scale(\").concat(scaleString, \")\\n      \");\n\n        if (params.slideShadows) {\n          // Set shadows\n          var $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n          if ($shadowEl.length === 0) {\n            $shadowEl = createShadow(params, $slideEl);\n          }\n\n          if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n        }\n\n        $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n        var $targetEl = effectTarget(params, $slideEl);\n        $targetEl.transform(_transform3);\n      }\n    };\n\n    var setTransition = function setTransition(duration) {\n      var transformEl = swiper.params.cardsEffect.transformEl;\n      var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n      $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n      effectVirtualTransitionEnd({\n        swiper: swiper,\n        duration: duration,\n        transformEl: transformEl\n      });\n    };\n\n    effectInit({\n      effect: 'cards',\n      swiper: swiper,\n      on: on,\n      setTranslate: setTranslate,\n      setTransition: setTransition,\n      perspective: function perspective() {\n        return true;\n      },\n      overwriteParams: function overwriteParams() {\n        return {\n          watchSlidesProgress: true,\n          virtualTranslate: !swiper.params.cssMode\n        };\n      }\n    });\n  } // Swiper Class\n\n\n  var modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\n  Swiper.use(modules);\n  return Swiper;\n});","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_01-a3cc11002e813506832bb7ef6fc7db8e.png\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_02-62a2555fce9ba0396955afd243506046.png\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_03-04e19721fb790df5c46f117a80c16b30.png\";","import {addSuchiKeikakuEventListenerAll, setInitialValueForUntenShikin, hideYakuinHoshu, handleSetCompareInputs} from \"./untenShikinSlider\"\nimport {setInitialValueForKaigyoShikin, addKaigyoShikinEventListenerAll } from \"./kaigyoShikinSlider\"\n\n$(function() {\n  $(document).on('click', '.js_automatic-calculation', function() {\n    const target = $(this).data('target');\n    const suchikeikakuIndustryId = $('#modal-select-hidden').val();\n    const businessType = $('input[name=\"founding_template[business_type]\"]:checked').val();\n    const jikoshikin = $('#jikoshikin').val();\n    const kariire = $('#kariire').val();\n    const kaigyoshikinSonota = $('#kaigyoshikin_sonota').val();\n    const uriage1y = $('#sales1').val();\n    const uriage2y = $('#sales2').val();\n    const uriage3y = $('#sales3').val();\n\n    if (!automaticCalculationValidate(true)) {\n      return false;\n    }\n\n    let send_data = {}\n\n    if (target === 'all') {\n      send_data = {\n        'target': target,\n        'founding_template[suchikeikaku_industry_id]': suchikeikakuIndustryId, // 業種\n        'founding_template[business_type]': businessType,                      // 事業形態\n        'founding_template[jikoshikin]': jikoshikin,                           // 開業資金 自己資金\n        'founding_template[kariire]': kariire,                                 // 開業資金 借入\n        'founding_template[kaigyoshikin_sonota]': kaigyoshikinSonota,          // 開業資金 その他\n        'founding_template[uriage_1y]': uriage1y,                              // 売上 1年目\n        'founding_template[uriage_2y]': uriage1y,                              // 売上 2年目に売上1年目を使用\n        'founding_template[uriage_3y]': uriage1y,                              // 売上 3年目に売上1年目を使用\n      }\n      // 売上2年目、3年目に1年目の値をセット\n      $('#sales2').val(uriage1y);\n      $('#sales3').val(uriage1y);\n    } else if (target === 'kaigyohiyo') {\n      send_data = {\n        'target': target,\n        'founding_template[suchikeikaku_industry_id]': suchikeikakuIndustryId, // 業種\n        'founding_template[jikoshikin]': jikoshikin,                           // 開業資金 自己資金\n        'founding_template[kariire]': kariire,                                 // 開業資金 借入\n        'founding_template[kaigyoshikin_sonota]': kaigyoshikinSonota,          // 開業資金 その他\n      }\n    } else if (target === 'untenshikin') {\n      send_data = {\n        'target': target,\n        'founding_template[suchikeikaku_industry_id]': suchikeikakuIndustryId, // 業種\n        'founding_template[business_type]': businessType,                      // 事業形態\n        'founding_template[uriage_1y]': uriage1y,                              // 売上 1年目\n        'founding_template[uriage_2y]': uriage2y,                              // 売上 2年目\n        'founding_template[uriage_3y]': uriage3y,                              // 売上 3年目\n      }\n    }\n\n    $.ajax({\n      type: \"POST\",\n      url: \"/plan/founding_templates/automatic_calculation\",\n      data: send_data\n    }).done(function(data, textStatus, jqXHR) {\n      setInitialValueForKaigyoShikin();\n      setInitialValueForUntenShikin();\n      addKaigyoShikinEventListenerAll();\n      addSuchiKeikakuEventListenerAll();\n      hideYakuinHoshu();\n      addEventListenerToTooltips(target);\n      if (target === 'all') {\n        $(\"#step2\").addClass(\"main-stepper__item--active\")\n        $(\"#step2\").removeClass(\"main-stepper__item\")\n        $('#stepper_arrow').addClass(\"main-stepper__arrow--active\");\n        $('#stepper_arrow').removeClass(\"main-stepper__arrow\")\n        // サマリー部分を入れ替え\n        $(\"#initSuuchiSummary\").addClass(\"d-none\");\n        $(\"#suuchiSummary\").removeClass(\"d-none\");\n        // 売上部分のtext fieldに値を反映\n        [$(\"#sales1\"), $(\"#sales2\"), $(\"#sales3\")].forEach((item) => {\n          setDelimitedMoney(item[0]); // DOM要素を渡すためにjQueryオブジェクトの0番目を指定\n        });\n        // 役員報酬の表示をスイッチするイベントを付与\n        $('input[name=\"founding_template[business_type]\"]').on('change', function() {\n          hideYakuinHoshu();\n        });\n        // フロー下のテキストを入れ替え\n        $('#step1_description').addClass(\"d-none\");\n        $('#step2_description').removeClass(\"d-none\");\n      }\n      toggleAutoCalcButtonAndTooltip();\n    }).fail(function(jqXHR, textStatus, errorThrown) {\n    });\n  });\n});\n\n// 自動計算実行確認モーダル\nimport { Modal } from 'bootstrap'\n$(function() {\n  const modalSelector = \"#auto-calculate\";\n  const modalCalcTargetStrSelector = \"#auto-calculate .js-calc_target_str\";\n  const modalCalcTargetSelector = \"#auto-calculate .js_automatic-calculation\";\n  var myModal;\n\n  if ($(modalSelector).length) {\n    myModal = new Modal($(modalSelector), {});\n  }\n\n  $(document).on('click', '.js-founding_template_auto_calculate_button', function() {\n    var targetStr = $(this).data('founding-template-auto-calculate-target-str');\n    var target = $(this).data('founding-template-auto-calculate-target');\n\n    $(modalCalcTargetStrSelector).text(targetStr);\n    $(modalCalcTargetSelector).data('target', target);\n\n    myModal.show();\n  });\n});\n\nimport { Tooltip } from 'bootstrap'\nimport { setDelimitedMoney } from \"./suchiUtil\";\n// ツールチップへのイベントリスナー再付与\nfunction addEventListenerToTooltips(target){\n  const kaigyoHiyoTooltip = \"#kaigyoHiyoTooltip\"\n  const untenShikinTooltip = \"#untenShikinTooltip\"\n  const jinkenhiTooltip = \"#jinkenhiTooltip\"\n  if (target === \"untenshikin\") {\n    new Tooltip($(jinkenhiTooltip))\n  } else {\n    new Tooltip($(kaigyoHiyoTooltip))\n    new Tooltip($(untenShikinTooltip))\n    new Tooltip($(jinkenhiTooltip))\n  }\n}\n\n$(function() {\n  toggleAutoCalcButtonAndTooltip();\n});\n// 業種その他の場合に自動計算のボタンを表示・非表示を設定\nexport function toggleAutoCalcButtonAndTooltip() {\n  if ($('input[name=\"founding_template[suchikeikaku_industry_id]\"]')) {\n    if ($('input[name=\"founding_template[suchikeikaku_industry_id]\"]').val() === \"13\") {\n      $(\"#unten-shikin-auto-calc-button\").hide();\n      $(\"#kaigyo-hiyo-auto-calc-button\").hide();\n      $(\"#kaigyo-hiyo-auto-calc-tooltip\").hide();\n      $(\"#unten-shikin-auto-calc-tooltip\").hide();\n    } else {\n      $(\"#unten-shikin-auto-calc-button\").show();\n      $(\"#kaigyo-hiyo-auto-calc-button\").show();\n      $(\"#kaigyo-hiyo-auto-calc-tooltip\").show();\n      $(\"#unten-shikin-auto-calc-tooltip\").show();\n    }\n  }\n}\n\n// 自動計算バリデーション\nexport function automaticCalculationValidate(isScroll = false, item = null) {\n  let isValid = true;\n\n  const scrollOffset = 20;\n\n  // 業種\n  if (item == null || item == '#modal-select-hidden') {\n    if ($(\"#modal-select-hidden\").val() === \"\") {\n      isValid = false;\n      $('.main-form__select-button').addClass('is-invalid');\n      $('.suchikeikaku-industry-invalid-feedback').addClass('d-block');\n      if (isScroll) {\n        $(window).scrollTop($('.main-form__select-button').offset().top - scrollOffset);\n        isScroll = false;\n      }\n    } else {\n      $('.main-form__select-button').removeClass('is-invalid');\n      $('.suchikeikaku-industry-invalid-feedback').removeClass('d-block');\n    }\n  }\n\n  // 事業形態\n  if (item == null || item == 'input[name=\"founding_template[business_type]\"]') {\n    if ($('input[name=\"founding_template[business_type]\"]:checked').length === 0) {\n      isValid = false;\n      $('input[name=\"founding_template[business_type]\"]').addClass('is-invalid');\n      $('.business-type-invalid-feedback').addClass('d-block');\n      if (isScroll) {\n        $(window).scrollTop($('#business_type1').offset().top - scrollOffset);\n        isScroll = false;\n      }\n    } else {\n      $('input[name=\"founding_template[business_type]\"]').removeClass('is-invalid');\n      $('.business-type-invalid-feedback').removeClass('d-block');\n    }\n  }\n\n  // 自己資金\n  if (item == null || item == '#text_jikoshikin') {\n    if ($(\"#text_jikoshikin\").val() === \"\") {\n      isValid = false;\n      $('#text_jikoshikin').addClass('is-invalid');\n      $('.jikoshikin-invalid-feedback').addClass('d-block');\n      if (isScroll) {\n        $(window).scrollTop($('#text_jikoshikin').offset().top - scrollOffset);\n        isScroll = false;\n      }\n    } else {\n      $('#text_jikoshikin').removeClass('is-invalid');\n      $('.jikoshikin-invalid-feedback').removeClass('d-block');\n    }\n  }\n\n  // 借入\n  if (item == null || item == '#text_kariire') {\n    if ($(\"#text_kariire\").val() === \"\") {\n      isValid = false;\n      $('#text_kariire').addClass('is-invalid');\n      $('.kariire-invalid-feedback').addClass('d-block');\n      if (isScroll) {\n        $(window).scrollTop($('#text_kariire').offset().top - scrollOffset);\n        isScroll = false;\n      }\n    } else {\n      $('#text_kariire').removeClass('is-invalid');\n      $('.kariire-invalid-feedback').removeClass('d-block');\n    }\n  }\n\n  // その他\n  if (item == null || item == '#text_kaigyoshikin_sonota') {\n    if ($(\"#text_kaigyoshikin_sonota\").val() === \"\") {\n      isValid = false;\n      $('#text_kaigyoshikin_sonota').addClass('is-invalid');\n      $('.kaigyoshikin-sonota-invalid-feedback').addClass('d-block');\n      if (isScroll) {\n        $(window).scrollTop($('#text_kaigyoshikin_sonota').offset().top - scrollOffset);\n        isScroll = false;\n      }\n    } else {\n      $('#text_kaigyoshikin_sonota').removeClass('is-invalid');\n      $('.kaigyoshikin-sonota-invalid-feedback').removeClass('d-block');\n    }\n  }\n\n  // 売上1年目\n  if (item == null || item == '#text_sales1') {\n    if ($(\"#text_sales1\").val() === \"\") {\n      isValid = false;\n      $('#text_sales1').addClass('is-invalid');\n      $('.sales1-invalid-feedback').addClass('d-block');\n      if (isScroll) {\n        $(window).scrollTop($('#text_sales1').offset().top - scrollOffset);\n        isScroll = false;\n      }\n    } else {\n      $('#text_sales1').removeClass('is-invalid');\n      $('.sales1-invalid-feedback').removeClass('d-block');\n    }\n  }\n\n  return isValid;\n}\n\n// 結果ページサイドバナー表示、非表示\n$(function() {\n  if ($('.founding-templates-aside').length) {\n    const offset = 24;\n\n    $(window).scroll(function() {\n      const jfcTemplatesBannerTop = $('#jfc_templates_banner').offset().top;\n      const jfcTemplatesBannerHeight = $('#jfc_templates_banner').height();\n      const jfcTemplatesBannerBottom = jfcTemplatesBannerTop + jfcTemplatesBannerHeight;\n\n      const jfcTemplatesBannerDisplayEndPointTop = $('#jfc_templates_banner_display_end_point').offset().top;\n\n      if (jfcTemplatesBannerDisplayEndPointTop + offset <= jfcTemplatesBannerBottom) {\n        $('#jfc_templates_banner').addClass('hidden');\n      } else {\n        $('#jfc_templates_banner').removeClass('hidden');\n      }\n    });\n  }\n});\n\n$(function() {\n  $(\".js-show_form_suuchi_initial_menu_sp\").on(\"click\", function() {\n    $(\".js-form_suuchi_category_menu_sp\").removeClass(\"d-none\");\n    $(\".js-form_suuchi_main_sp\").addClass(\"d-none\");\n  });\n  $(\".js-hide_form_suuchi_initial_menu_sp\").on(\"click\", function() {\n    $(\".js-form_suuchi_category_menu_sp\").addClass(\"d-none\");\n    $(\".js-form_suuchi_main_sp\").removeClass(\"d-none\");\n  });\n\n  const reCalcModal = document.getElementById(\"re-calc-sp\");\n  if (reCalcModal) {\n    reCalcModal.addEventListener(\"show.bs.modal\", event => {\n      const button = event.relatedTarget;\n\n      const reCalcTargetStr = button.getAttribute(\"data-bs-re-calc-target-str\");\n      const destElements = reCalcModal.getElementsByClassName(\"js-re-calc-target-str\");\n      for (let i = 0; i < destElements.length; i++) {\n        destElements[i].textContent = reCalcTargetStr;\n      }\n\n      const reCalcTargetIdentifier = button.getAttribute(\"data-bs-re-calc-target-identifier\");\n      const reCalcModalSubmitButton = reCalcModal.querySelector(\"#re_calc_modal_submit_button\");\n      reCalcModalSubmitButton.setAttribute(\"value\", reCalcTargetIdentifier);\n    });\n  }\n\n  if ($(\"#form_suuchi_step1_sp\").length) {\n    $(\"#startCalculationButton\").on(\"click\", function() {\n      if (!automaticCalculationValidate(true)) {\n        return false;\n      }\n    });\n  }\n\n  if ($(\"#form_suuchi_step2_sp\").length) {\n    setInitialValueForKaigyoShikin();\n    setInitialValueForUntenShikin();\n    addKaigyoShikinEventListenerAll();\n    addSuchiKeikakuEventListenerAll();\n    hideYakuinHoshu();\n\n    $('input[name=\"founding_template[business_type]\"]').on('change', function() {\n      hideYakuinHoshu();\n      handleSetCompareInputs();\n    });\n  }\n});\n","import {\n  setWithCountAnimation,\n  sanitizeMoney,\n  updateDelimitedMoney,\n  setDelimitedMoney,\n  delimitedMoney,\n} from \"./suchiUtil\";\nimport {\n  toggleAutoCalcButtonAndTooltip,\n  automaticCalculationValidate,\n} from \"./founding-template\";\nimport {\n  handleKaigyoShikinSetSimulationBar\n} from \"./numBtn\";\n\nconst modalSelectButtons = document.querySelectorAll(\".modal__button\");\nfunction handleClickSelectButton(e) {\n  const val = e.currentTarget.value;\n  const hiddenVal = e.currentTarget.getAttribute(\"data-hidden-value\");\n  document.getElementById(\"modal-select\").textContent = val;\n  document\n    .getElementById(\"modal-select\")\n    .classList.remove(\"main-form__not-selected\");\n  document.getElementById(\"modal-select\").classList.add(\"main-form__selected\");\n  document.getElementById(\"modal-select-hidden\").value = hiddenVal;\n  if ($(\"#uriage_init_title\").length) {\n    automaticCalculationValidate(false, \"#modal-select-hidden\");\n  }\n  toggleAutoCalcButtonAndTooltip();\n}\nmodalSelectButtons.forEach((button) => {\n  button.addEventListener(\"click\", handleClickSelectButton);\n});\n\n$(function () {\n  [\n    \"#modal-select-hidden\",\n    'input[name=\"founding_template[business_type]\"]',\n  ].forEach((item) => {\n    $(item).on(\"change\", function () {\n      if ($(\"#uriage_init_title\").length) {\n        automaticCalculationValidate(false, item);\n      }\n    });\n  });\n  [\n    \"#text_jikoshikin\",\n    \"#text_kariire\",\n    \"#text_kaigyoshikin_sonota\",\n    \"#text_sales1\",\n  ].forEach((item) => {\n    $(item).on(\"input\", function () {\n      if ($(\"#uriage_init_title\").length) {\n        automaticCalculationValidate(false, item);\n      }\n    });\n  });\n});\n\nfunction switchStartButton(valid) {\n  if (valid) {\n    $(\"#startCalculationButton\").prop(\"disabled\", false);\n  } else {\n    $(\"#startCalculationButton\").prop(\"disabled\", true);\n  }\n}\n\nfunction validMandatoryFields() {\n  if ($(\"#modal-select-hidden\").val() === \"\") return false;\n  if ($(\"input[type='radio']:checked\").length === 0) return false;\n  if ($(\"#text_jikoshikin\").val() === \"\") return false;\n  if ($(\"#text_kariire\").val() === \"\") return false;\n  if ($(\"#text_kaigyoshikin_sonota\").val() === \"\") return false;\n  if ($(\"#text_sales1\").val() === \"\") return false;\n\n  return true;\n}\n\nfunction setInitAsideSummary() {\n  // 開業資金合計\n  const sumInputs = document.querySelectorAll(\".data-sum\");\n  const uriage1y = document.getElementById(\"sales1\");\n  let kaigyoShikinTotal = 0;\n  sumInputs.forEach((input) => {\n    kaigyoShikinTotal += sanitizeMoney(input.value);\n  });\n  if (\n    document.getElementById(\"initFund1\").textContent !=\n    kaigyoShikinTotal.toString()\n  ) {\n    setWithCountAnimation(\n      document.getElementById(\"initFund1\"),\n      0,\n      kaigyoShikinTotal\n    );\n  }\n  if (\n    document.getElementById(\"initRunningSum1\").textContent !=\n    sanitizeMoney(uriage1y.value).toString()\n  ) {\n    setWithCountAnimation(\n      document.getElementById(\"initRunningSum1\"),\n      0,\n      sanitizeMoney(uriage1y.value)\n    );\n  }\n}\n\n// 開業費用スライダーの変更\nfunction handleRangeInputChange(e) {\n  const target = e.target;\n  const max = Number(target.max);\n  const val = Number(target.value);\n\n  const inputId = target.id.replace(\"input-slider\", \"data-input\");\n  const hiddenElement = document.getElementById(inputId);\n  const textFieldElement = document.getElementById(\"text_\" + inputId);\n  target.defaultValue = val;\n\n  // text fieldへのセット\n  textFieldElement.value = delimitedMoney(target.defaultValue);\n  // hidden fieldへのセット\n  hiddenElement.value = target.defaultValue;\n  if (val !== 0) {\n    target.style.backgroundSize = (val * 100) / max + \"% 100%\";\n  } else {\n    target.style.backgroundSize = \"0% 100%\";\n  }\n  setAsideSummary();\n}\n\n// 開業費用インプットフィールドの変更\nfunction handleKaigyoHiyoInputChange(event) {\n  const textFieldElement = event.target;\n  const val = sanitizeMoney(textFieldElement.value);\n  // カンマ区切り処理\n  updateDelimitedMoney(textFieldElement);\n\n  try {\n    // スライダーへの反映\n    const sliderId = textFieldElement.dataset.target.replace(\n      \"data-input\",\n      \"input-slider\"\n    );\n    const sliderElement = document.getElementById(sliderId);\n    sliderElement.defaultValue = val;\n    sliderElement.value = val;\n\n    if (val == 0) {\n      sliderElement.style.backgroundSize = \"0% 100%\";\n    } else if (val > sliderElement.max) {\n      sliderElement.style.backgroundSize = \"100% 100%\";\n    } else {\n      sliderElement.style.backgroundSize =\n        (val * 100) / sliderElement.max + \"% 100%\";\n    }\n  } catch (error) {\n    // console.warn(error);\n  }\n  setAsideSummary();\n}\n\nfunction kaigyoShikinSum() {\n  const sumInputs = document.querySelectorAll(\".data-sum\");\n  let result = 0;\n  sumInputs.forEach((input) => {\n    result += Number(input.value);\n  });\n  return result;\n}\n\nfunction setAsideSummary() {\n  // 開業資金合計\n  const sumInputs = document.querySelectorAll(\".data-sum\");\n  let kaigyoShikinTotal = 0;\n  sumInputs.forEach((input) => {\n    kaigyoShikinTotal += Number(input.value);\n  });\n  // 開業費用合計\n  const dataInputs = document.querySelectorAll(\".data-input\");\n  let kaigyoHiyoTotal = 0;\n  dataInputs.forEach((item) => {\n    kaigyoHiyoTotal += Number(item.value);\n  });\n\n  setWithCountAnimation(document.getElementById(\"fund1\"), 0, kaigyoShikinTotal);\n  setWithCountAnimation(document.getElementById(\"fund2\"), 0, kaigyoHiyoTotal);\n  setWithCountAnimation(\n    document.getElementById(\"fund3\"),\n    0,\n    kaigyoShikinTotal - kaigyoHiyoTotal\n  );\n\n  checkShikinZanMinus(kaigyoShikinTotal - kaigyoHiyoTotal);\n\n  handleKaigyoShikinSetSimulationBar(kaigyoShikinTotal, kaigyoHiyoTotal, kaigyoShikinTotal - kaigyoHiyoTotal);\n}\n\nfunction checkShikinZanMinus(zankin) {\n  if (zankin < 0) {\n    $(\".shikinZanMinus\").addClass(\"d-block\");\n    $(\".showResultButton\").prop(\"disabled\", true);\n    $(\".showResultButton\").addClass(\"main-button--mask\");\n  } else {\n    $(\".shikinZanMinus\").removeClass(\"d-block\");\n    $(\".showResultButton\").prop(\"disabled\", false);\n    $(\".showResultButton\").removeClass(\"main-button--mask\");\n  }\n}\n\n// 開業資金のイベント処理\nfunction handleKaigyoShikinChange(event) {\n  const textFieldElement = event.target;\n  // カンマ区切り処理\n  updateDelimitedMoney(textFieldElement);\n  // 開業資金合計算出\n  resetMaxRange();\n  setAsideSummary();\n}\n\n// 開業資金変更によってスライダー最大値を変更する\nfunction resetMaxRange() {\n  const currentSum = kaigyoShikinSum();\n  // レンジスライダー\n  const rangeInputs = document.querySelectorAll(\".input-slider\");\n\n  const maxRange = currentSum < 100 ? 100 : currentSum;\n  rangeInputs.forEach((slider) => {\n    slider.max = maxRange;\n    slider.value = slider.defaultValue;\n    if (Number(slider.defaultValue) !== 0) {\n      if ((Number(slider.defaultValue) * 100) / maxRange + 1 > 100) {\n        slider.style.backgroundSize = \"100% 100%\";\n      } else {\n        slider.style.backgroundSize =\n          (Number(slider.defaultValue) * 100) / maxRange + 1 + \"% 100%\";\n      }\n    } else {\n      slider.style.backgroundSize = \"0% 100%\";\n    }\n  });\n}\n\nexport function addKaigyoShikinEventListenerAll() {\n  // 開業費用のスライダー\n  const rangeInputs = document.querySelectorAll(\".input-slider\");\n  rangeInputs.forEach((input) => {\n    input.addEventListener(\"input\", handleRangeInputChange);\n  });\n\n  // 開業費用のスライダー横インプット\n  const dataInputs = document.querySelectorAll(\".js-kaigyo-hiyo-input\");\n  dataInputs.forEach((input) => {\n    input.addEventListener(\"change\", handleKaigyoHiyoInputChange);\n  });\n\n  // 開業資金合計\n  const sumInputs = document.querySelectorAll(\".js-kaigyo-shikin-input\");\n  sumInputs.forEach((input) => {\n    input.addEventListener(\"change\", handleKaigyoShikinChange);\n  });\n}\n\nexport function setInitialValueForKaigyoShikin() {\n  // 開業資金合計\n  let maxRange = 0;\n  const kaijoShikinInputs = document.querySelectorAll(\".data-sum\");\n  kaijoShikinInputs.forEach((input) => {\n    maxRange += Number(input.value);\n  });\n\n  if (maxRange < 100) maxRange = 100;\n\n  // 開業費用のスライダーをセット\n  const dataInputs = document.querySelectorAll(\".data-input\");\n  dataInputs.forEach((input) => {\n    try {\n      const sliderElement = input.parentNode.previousElementSibling.querySelector(\n        \"input[type='range']\"\n      );\n      sliderElement.value = input.value;\n      sliderElement.defaultValue = input.value;\n      sliderElement.max = maxRange;\n      if (Number(sliderElement.defaultValue) !== 0) {\n        if ((Number(sliderElement.defaultValue) * 100) / maxRange + 1 > 100) {\n          sliderElement.style.backgroundSize = \"100% 100%\";\n        } else {\n          sliderElement.style.backgroundSize =\n            (Number(sliderElement.defaultValue) * 100) / maxRange + 1 + \"% 100%\";\n        }\n      } else {\n        sliderElement.style.backgroundSize = \"0% 100%\";\n      }\n    } catch (error) {\n      // console.warn(error);\n    }\n    // text fieldにカンマ区切りでセット\n    setDelimitedMoney(input);\n  });\n\n  // サイドバーの開業資金等の更新\n  setAsideSummary();\n}\n\n$(function () {\n  if (\n    document.getElementById(\"startCalculationButton\") == null &&\n    document.getElementById(\"kaigyohiyo_title_section\")\n  ) {\n    setInitialValueForKaigyoShikin();\n    addKaigyoShikinEventListenerAll();\n  }\n\n  // 初期状態でのサマリーセクションへのセット\n  if (document.getElementById(\"initFund1\")) {\n    setInitAsideSummary();\n\n    let automaticInput = $(\"#uriage_init_title\").length ? false : true;\n\n    // 初期状態で自己資金、借入、その他の項目がすべて埋まっていない場合、最初に入力があったタイミングで他の項目を0セットする\n    [\n      $(\"#text_jikoshikin\"),\n      $(\"#text_kariire\"),\n      $(\"#text_kaigyoshikin_sonota\"),\n    ].forEach((item) => {\n      item.on(\"change\", function () {\n        if (automaticInput) {\n          if ($(\"#text_jikoshikin\").val() === \"\") {\n            $(\"#text_jikoshikin\").val(0);\n            $(\"#jikoshikin\").val(0);\n          }\n          if ($(\"#text_kariire\").val() === \"\") {\n            $(\"#text_kariire\").val(0);\n            $(\"#kariire\").val(0);\n          }\n          if ($(\"#text_kaigyoshikin_sonota\").val() === \"\") {\n            $(\"#text_kaigyoshikin_sonota\").val(0);\n            $(\"#kaigyoshikin_sonota\").val(0);\n          }\n        }\n      });\n    });\n\n    // 初期状態の項目に対してカンマ区切り処理してサイドカラム反映\n    [\n      $(\"#text_jikoshikin\"),\n      $(\"#text_kariire\"),\n      $(\"#text_kaigyoshikin_sonota\"),\n      $(\"#text_sales1\"),\n    ].forEach((item) => {\n      item.on(\"change\", function () {\n        updateDelimitedMoney(this, automaticInput);\n        setInitAsideSummary();\n      });\n    });\n  }\n});\n","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 21;","function _typeof(obj) { \"@babel/helpers - typeof\"; 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\n/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n  var t;\n  null == window.Set && (window.Set = t = function () {\n    function t() {\n      this.clear();\n    }\n\n    return t.prototype.clear = function () {\n      return this.values = [];\n    }, t.prototype.has = function (t) {\n      return -1 !== this.values.indexOf(t);\n    }, t.prototype.add = function (t) {\n      return this.has(t) || this.values.push(t), this;\n    }, t.prototype[\"delete\"] = function (t) {\n      var e;\n      return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n    }, t.prototype.forEach = function () {\n      var t;\n      return (t = this.values).forEach.apply(t, arguments);\n    }, t;\n  }());\n}.call(this), function (t) {\n  function e() {}\n\n  function n(t, e) {\n    return function () {\n      t.apply(e, arguments);\n    };\n  }\n\n  function i(t) {\n    if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n    if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n    this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n  }\n\n  function o(t, e) {\n    for (; 3 === t._state;) {\n      t = t._value;\n    }\n\n    return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n      var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n      if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n      var i;\n\n      try {\n        i = n(t._value);\n      } catch (o) {\n        return void s(e.promise, o);\n      }\n\n      r(e.promise, i);\n    }));\n  }\n\n  function r(t, e) {\n    try {\n      if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n      if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n        var o = e.then;\n        if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n        if (\"function\" == typeof o) return void c(n(o, e), t);\n      }\n\n      t._state = 1, t._value = e, a(t);\n    } catch (r) {\n      s(t, r);\n    }\n  }\n\n  function s(t, e) {\n    t._state = 2, t._value = e, a(t);\n  }\n\n  function a(t) {\n    2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n      t._handled || p(t._value);\n    }, 1);\n\n    for (var e = 0, n = t._deferreds.length; n > e; e++) {\n      o(t, t._deferreds[e]);\n    }\n\n    t._deferreds = null;\n  }\n\n  function u(t, e, n) {\n    this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n  }\n\n  function c(t, e) {\n    var n = !1;\n\n    try {\n      t(function (t) {\n        n || (n = !0, r(e, t));\n      }, function (t) {\n        n || (n = !0, s(e, t));\n      });\n    } catch (i) {\n      if (n) return;\n      n = !0, s(e, i);\n    }\n  }\n\n  var l = setTimeout,\n      h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n    l(t, 1);\n  },\n      p = function p(t) {\n    \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n  };\n\n  i.prototype[\"catch\"] = function (t) {\n    return this.then(null, t);\n  }, i.prototype.then = function (t, n) {\n    var r = new i(e);\n    return o(this, new u(t, n, r)), r;\n  }, i.all = function (t) {\n    var e = Array.prototype.slice.call(t);\n    return new i(function (t, n) {\n      function i(r, s) {\n        try {\n          if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n            var a = s.then;\n            if (\"function\" == typeof a) return void a.call(s, function (t) {\n              i(r, t);\n            }, n);\n          }\n\n          e[r] = s, 0 === --o && t(e);\n        } catch (u) {\n          n(u);\n        }\n      }\n\n      if (0 === e.length) return t([]);\n\n      for (var o = e.length, r = 0; r < e.length; r++) {\n        i(r, e[r]);\n      }\n    });\n  }, i.resolve = function (t) {\n    return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n      e(t);\n    });\n  }, i.reject = function (t) {\n    return new i(function (e, n) {\n      n(t);\n    });\n  }, i.race = function (t) {\n    return new i(function (e, n) {\n      for (var i = 0, o = t.length; o > i; i++) {\n        t[i].then(e, n);\n      }\n    });\n  }, i._setImmediateFn = function (t) {\n    h = t;\n  }, i._setUnhandledRejectionFn = function (t) {\n    p = t;\n  }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n  var t = \"object\" == _typeof(window.customElements),\n      e = \"function\" == typeof document.registerElement,\n      n = t || e;\n\n  n || (\n  /**\n  * @license\n  * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n  * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n  * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n  * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n  * Code distributed by Google as part of the polymer project is also\n  * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n  */\n  \"undefined\" == typeof WeakMap && !function () {\n    var t = Object.defineProperty,\n        e = Date.now() % 1e9,\n        n = function n() {\n      this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n    };\n\n    n.prototype = {\n      set: function set(e, n) {\n        var i = e[this.name];\n        return i && i[0] === e ? i[1] = n : t(e, this.name, {\n          value: [e, n],\n          writable: !0\n        }), this;\n      },\n      get: function get(t) {\n        var e;\n        return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n      },\n      \"delete\": function _delete(t) {\n        var e = t[this.name];\n        return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n      },\n      has: function has(t) {\n        var e = t[this.name];\n        return e ? e[0] === t : !1;\n      }\n    }, window.WeakMap = n;\n  }(), function (t) {\n    function e(t) {\n      A.push(t), b || (b = !0, g(i));\n    }\n\n    function n(t) {\n      return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n    }\n\n    function i() {\n      b = !1;\n      var t = A;\n      A = [], t.sort(function (t, e) {\n        return t.uid_ - e.uid_;\n      });\n      var e = !1;\n      t.forEach(function (t) {\n        var n = t.takeRecords();\n        o(t), n.length && (t.callback_(n, t), e = !0);\n      }), e && i();\n    }\n\n    function o(t) {\n      t.nodes_.forEach(function (e) {\n        var n = m.get(e);\n        n && n.forEach(function (e) {\n          e.observer === t && e.removeTransientObservers();\n        });\n      });\n    }\n\n    function r(t, e) {\n      for (var n = t; n; n = n.parentNode) {\n        var i = m.get(n);\n        if (i) for (var o = 0; o < i.length; o++) {\n          var r = i[o],\n              s = r.options;\n\n          if (n === t || s.subtree) {\n            var a = e(s);\n            a && r.enqueue(a);\n          }\n        }\n      }\n    }\n\n    function s(t) {\n      this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n    }\n\n    function a(t, e) {\n      this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n    }\n\n    function u(t) {\n      var e = new a(t.type, t.target);\n      return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n    }\n\n    function c(t, e) {\n      return x = new a(t, e);\n    }\n\n    function l(t) {\n      return w ? w : (w = u(x), w.oldValue = t, w);\n    }\n\n    function h() {\n      x = w = void 0;\n    }\n\n    function p(t) {\n      return t === w || t === x;\n    }\n\n    function d(t, e) {\n      return t === e ? t : w && p(t) ? w : null;\n    }\n\n    function f(t, e, n) {\n      this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n    }\n\n    if (!t.JsMutationObserver) {\n      var g,\n          m = new WeakMap();\n      if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n        var v = [],\n            y = String(Math.random());\n        window.addEventListener(\"message\", function (t) {\n          if (t.data === y) {\n            var e = v;\n            v = [], e.forEach(function (t) {\n              t();\n            });\n          }\n        }), g = function g(t) {\n          v.push(t), window.postMessage(y, \"*\");\n        };\n      }\n      var b = !1,\n          A = [],\n          C = 0;\n      s.prototype = {\n        observe: function observe(t, e) {\n          if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n          var i = m.get(t);\n          i || m.set(t, i = []);\n\n          for (var o, r = 0; r < i.length; r++) {\n            if (i[r].observer === this) {\n              o = i[r], o.removeListeners(), o.options = e;\n              break;\n            }\n          }\n\n          o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n        },\n        disconnect: function disconnect() {\n          this.nodes_.forEach(function (t) {\n            for (var e = m.get(t), n = 0; n < e.length; n++) {\n              var i = e[n];\n\n              if (i.observer === this) {\n                i.removeListeners(), e.splice(n, 1);\n                break;\n              }\n            }\n          }, this), this.records_ = [];\n        },\n        takeRecords: function takeRecords() {\n          var t = this.records_;\n          return this.records_ = [], t;\n        }\n      };\n      var x, w;\n      f.prototype = {\n        enqueue: function enqueue(t) {\n          var n = this.observer.records_,\n              i = n.length;\n\n          if (n.length > 0) {\n            var o = n[i - 1],\n                r = d(o, t);\n            if (r) return void (n[i - 1] = r);\n          } else e(this.observer);\n\n          n[i] = t;\n        },\n        addListeners: function addListeners() {\n          this.addListeners_(this.target);\n        },\n        addListeners_: function addListeners_(t) {\n          var e = this.options;\n          e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n        },\n        removeListeners: function removeListeners() {\n          this.removeListeners_(this.target);\n        },\n        removeListeners_: function removeListeners_(t) {\n          var e = this.options;\n          e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n        },\n        addTransientObserver: function addTransientObserver(t) {\n          if (t !== this.target) {\n            this.addListeners_(t), this.transientObservedNodes.push(t);\n            var e = m.get(t);\n            e || m.set(t, e = []), e.push(this);\n          }\n        },\n        removeTransientObservers: function removeTransientObservers() {\n          var t = this.transientObservedNodes;\n          this.transientObservedNodes = [], t.forEach(function (t) {\n            this.removeListeners_(t);\n\n            for (var e = m.get(t), n = 0; n < e.length; n++) {\n              if (e[n] === this) {\n                e.splice(n, 1);\n                break;\n              }\n            }\n          }, this);\n        },\n        handleEvent: function handleEvent(t) {\n          switch (t.stopImmediatePropagation(), t.type) {\n            case \"DOMAttrModified\":\n              var e = t.attrName,\n                  n = t.relatedNode.namespaceURI,\n                  i = t.target,\n                  o = new c(\"attributes\", i);\n              o.attributeName = e, o.attributeNamespace = n;\n              var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n              r(i, function (t) {\n                return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n              });\n              break;\n\n            case \"DOMCharacterDataModified\":\n              var i = t.target,\n                  o = c(\"characterData\", i),\n                  s = t.prevValue;\n              r(i, function (t) {\n                return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n              });\n              break;\n\n            case \"DOMNodeRemoved\":\n              this.addTransientObserver(t.target);\n\n            case \"DOMNodeInserted\":\n              var a,\n                  u,\n                  p = t.target;\n              \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n              var d = p.previousSibling,\n                  f = p.nextSibling,\n                  o = c(\"childList\", t.target.parentNode);\n              o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n                return t.childList ? o : void 0;\n              });\n          }\n\n          h();\n        }\n      }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n    }\n  }(self), function () {\n    \"use strict\";\n\n    if (!window.performance || !window.performance.now) {\n      var t = Date.now();\n      window.performance = {\n        now: function now() {\n          return Date.now() - t;\n        }\n      };\n    }\n\n    window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n      var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n      return t ? function (e) {\n        return t(function () {\n          e(performance.now());\n        });\n      } : function (t) {\n        return window.setTimeout(t, 1e3 / 60);\n      };\n    }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n      return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n        clearTimeout(t);\n      };\n    }());\n\n    var e = function () {\n      var t = document.createEvent(\"Event\");\n      return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n    }();\n\n    if (!e) {\n      var n = Event.prototype.preventDefault;\n\n      Event.prototype.preventDefault = function () {\n        this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n          get: function get() {\n            return !0;\n          },\n          configurable: !0\n        }));\n      };\n    }\n\n    var i = /Trident/.test(navigator.userAgent);\n\n    if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n      e = e || {};\n      var n = document.createEvent(\"CustomEvent\");\n      return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n    }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n      var o = window.Event;\n      window.Event = function (t, e) {\n        e = e || {};\n        var n = document.createEvent(\"Event\");\n        return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n      }, window.Event.prototype = o.prototype;\n    }\n  }(window.WebComponents), window.CustomElements = window.CustomElements || {\n    flags: {}\n  }, function (t) {\n    var e = t.flags,\n        n = [],\n        i = function i(t) {\n      n.push(t);\n    },\n        o = function o() {\n      n.forEach(function (e) {\n        e(t);\n      });\n    };\n\n    t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n  }(window.CustomElements), window.CustomElements.addModule(function (t) {\n    function e(t, e) {\n      n(t, function (t) {\n        return e(t) ? !0 : void i(t, e);\n      }), i(t, e);\n    }\n\n    function n(t, e, i) {\n      var o = t.firstElementChild;\n      if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n        o = o.nextSibling;\n      }\n\n      for (; o;) {\n        e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n      }\n\n      return null;\n    }\n\n    function i(t, n) {\n      for (var i = t.shadowRoot; i;) {\n        e(i, n), i = i.olderShadowRoot;\n      }\n    }\n\n    function o(t, e) {\n      r(t, e, []);\n    }\n\n    function r(t, e, n) {\n      if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n        n.push(t);\n\n        for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n          i.import && r(i.import, e, n);\n        }\n\n        e(t);\n      }\n    }\n\n    var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n    t.forDocumentTree = o, t.forSubtree = e;\n  }), window.CustomElements.addModule(function (t) {\n    function e(t, e) {\n      return n(t, e) || i(t, e);\n    }\n\n    function n(e, n) {\n      return t.upgrade(e, n) ? !0 : void (n && s(e));\n    }\n\n    function i(t, e) {\n      b(t, function (t) {\n        return n(t, e) ? !0 : void 0;\n      });\n    }\n\n    function o(t) {\n      w.push(t), x || (x = !0, setTimeout(r));\n    }\n\n    function r() {\n      x = !1;\n\n      for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n        t();\n      }\n\n      w = [];\n    }\n\n    function s(t) {\n      C ? o(function () {\n        a(t);\n      }) : a(t);\n    }\n\n    function a(t) {\n      t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n    }\n\n    function u(t) {\n      c(t), b(t, function (t) {\n        c(t);\n      });\n    }\n\n    function c(t) {\n      C ? o(function () {\n        l(t);\n      }) : l(t);\n    }\n\n    function l(t) {\n      t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n    }\n\n    function h(t) {\n      for (var e = t, n = window.wrap(document); e;) {\n        if (e == n) return !0;\n        e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n      }\n    }\n\n    function p(t) {\n      if (t.shadowRoot && !t.shadowRoot.__watched) {\n        y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n        for (var e = t.shadowRoot; e;) {\n          g(e), e = e.olderShadowRoot;\n        }\n      }\n    }\n\n    function d(t, n) {\n      if (y.dom) {\n        var i = n[0];\n\n        if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n          for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n            o = o.parentNode;\n          }\n\n          var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n          r = r.split(\"/?\").shift().split(\"/\").pop();\n        }\n\n        console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n      }\n\n      var s = h(t);\n      n.forEach(function (t) {\n        \"childList\" === t.type && (E(t.addedNodes, function (t) {\n          t.localName && e(t, s);\n        }), E(t.removedNodes, function (t) {\n          t.localName && u(t);\n        }));\n      }), y.dom && console.groupEnd();\n    }\n\n    function f(t) {\n      for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n        t = t.parentNode;\n      }\n\n      var e = t.__observer;\n      e && (d(t, e.takeRecords()), r());\n    }\n\n    function g(t) {\n      if (!t.__observer) {\n        var e = new MutationObserver(d.bind(this, t));\n        e.observe(t, {\n          childList: !0,\n          subtree: !0\n        }), t.__observer = e;\n      }\n    }\n\n    function m(t) {\n      t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n      var n = t === window.wrap(document);\n      e(t, n), g(t), y.dom && console.groupEnd();\n    }\n\n    function v(t) {\n      A(t, m);\n    }\n\n    var y = t.flags,\n        b = t.forSubtree,\n        A = t.forDocumentTree,\n        C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n    t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n    var x = !1,\n        w = [],\n        E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n        S = Element.prototype.createShadowRoot;\n    S && (Element.prototype.createShadowRoot = function () {\n      var t = S.call(this);\n      return window.CustomElements.watchShadow(this), t;\n    }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n  }), window.CustomElements.addModule(function (t) {\n    function e(e, i) {\n      if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n        var o = e.getAttribute(\"is\"),\n            r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n        if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n      }\n    }\n\n    function n(e, n, o) {\n      return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n    }\n\n    function i(t, e) {\n      Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n    }\n\n    function o(t, e, n) {\n      for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n        for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) {\n          i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n        }\n\n        o = Object.getPrototypeOf(o);\n      }\n    }\n\n    function r(t) {\n      t.createdCallback && t.createdCallback();\n    }\n\n    var s = t.flags;\n    t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n  }), window.CustomElements.addModule(function (t) {\n    function e(e, i) {\n      var u = i || {};\n      if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n      if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n      if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n      if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n      return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n    }\n\n    function n(t) {\n      if (!t.setAttribute._polyfilled) {\n        var e = t.setAttribute;\n\n        t.setAttribute = function (t, n) {\n          i.call(this, t, n, e);\n        };\n\n        var n = t.removeAttribute;\n        t.removeAttribute = function (t) {\n          i.call(this, t, null, n);\n        }, t.setAttribute._polyfilled = !0;\n      }\n    }\n\n    function i(t, e, n) {\n      t = t.toLowerCase();\n      var i = this.getAttribute(t);\n      n.apply(this, arguments);\n      var o = this.getAttribute(t);\n      this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n    }\n\n    function o(t) {\n      for (var e = 0; e < C.length; e++) {\n        if (t === C[e]) return !0;\n      }\n    }\n\n    function r(t) {\n      var e = c(t);\n      return e ? r(e.extends).concat([e]) : [];\n    }\n\n    function s(t) {\n      for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) {\n        n = e.is && e.tag;\n      }\n\n      t.tag = n || t.__name, n && (t.is = t.__name);\n    }\n\n    function a(t) {\n      if (!Object.__proto__) {\n        var e = HTMLElement.prototype;\n\n        if (t.is) {\n          var n = document.createElement(t.tag);\n          e = Object.getPrototypeOf(n);\n        }\n\n        for (var i, o = t.prototype, r = !1; o;) {\n          o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n        }\n\n        r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n      }\n    }\n\n    function u(t) {\n      return y(E(t.tag), t);\n    }\n\n    function c(t) {\n      return t ? x[t.toLowerCase()] : void 0;\n    }\n\n    function l(t, e) {\n      x[t] = e;\n    }\n\n    function h(t) {\n      return function () {\n        return u(t);\n      };\n    }\n\n    function p(t, e, n) {\n      return t === w ? d(e, n) : S(t, e);\n    }\n\n    function d(t, e) {\n      t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n      var n = c(e || t);\n\n      if (n) {\n        if (t == n.tag && e == n.is) return new n.ctor();\n        if (!e && !n.is) return new n.ctor();\n      }\n\n      var i;\n      return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n    }\n\n    function f(t, e) {\n      var n = t[e];\n\n      t[e] = function () {\n        var t = n.apply(this, arguments);\n        return v(t), t;\n      };\n    }\n\n    var g,\n        m = (t.isIE, t.upgradeDocumentTree),\n        v = t.upgradeAll,\n        y = t.upgradeWithDefinition,\n        b = t.implementPrototype,\n        A = t.useNative,\n        C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n        x = {},\n        w = \"http://www.w3.org/1999/xhtml\",\n        E = document.createElement.bind(document),\n        S = document.createElementNS.bind(document);\n    g = Object.__proto__ || A ? function (t, e) {\n      return t instanceof e;\n    } : function (t, e) {\n      if (t instanceof e) return !0;\n\n      for (var n = t; n;) {\n        if (n === e.prototype) return !0;\n        n = n.__proto__;\n      }\n\n      return !1;\n    }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n  }), function (t) {\n    function e() {\n      r(window.wrap(document)), window.CustomElements.ready = !0;\n\n      var t = window.requestAnimationFrame || function (t) {\n        setTimeout(t, 16);\n      };\n\n      t(function () {\n        setTimeout(function () {\n          window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n            bubbles: !0\n          }));\n        });\n      });\n    }\n\n    var n = t.useNative,\n        i = t.initializeModules;\n\n    if (t.isIE, n) {\n      var o = function o() {};\n\n      t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n        return t instanceof e;\n      };\n    } else i();\n\n    var r = t.upgradeDocumentTree,\n        s = t.upgradeDocument;\n    if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n      return t;\n    }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n      t.import && s(wrap(t.import));\n    }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n      var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n      window.addEventListener(a, e);\n    } else e();\n  }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n  var t = this;\n  (function () {\n    (function () {\n      this.Trix = {\n        VERSION: \"1.3.1\",\n        ZERO_WIDTH_SPACE: \"\\uFEFF\",\n        NON_BREAKING_SPACE: \"\\xa0\",\n        OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n        browser: {\n          composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n          forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n          supportsInputEvents: function () {\n            var t, e, n, i;\n            if (\"undefined\" == typeof InputEvent) return !1;\n\n            for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n              if (n = i[t], !(n in InputEvent.prototype)) return !1;\n            }\n\n            return !0;\n          }()\n        },\n        config: {}\n      };\n    }).call(this);\n  }).call(t);\n  var e = t.Trix;\n  (function () {\n    (function () {\n      e.BasicObject = function () {\n        function t() {}\n\n        var e, n, i;\n        return t.proxyMethod = function (t) {\n          var i, o, r, s, a;\n          return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n            var t, n;\n            return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n          };\n        }, n = function n(t) {\n          var e, n;\n          if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n          return e = {\n            name: n[4]\n          }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n        }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n      }();\n    }).call(this), function () {\n      var t = function t(_t, e) {\n        function i() {\n          this.constructor = _t;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n      },\n          n = {}.hasOwnProperty;\n\n      e.Object = function (n) {\n        function i() {\n          this.id = ++o;\n        }\n\n        var o;\n        return t(i, n), o = 0, i.fromJSONString = function (t) {\n          return this.fromJSON(JSON.parse(t));\n        }, i.prototype.hasSameConstructorAs = function (t) {\n          return this.constructor === (null != t ? t.constructor : void 0);\n        }, i.prototype.isEqualTo = function (t) {\n          return this === t;\n        }, i.prototype.inspect = function () {\n          var t, e, n;\n          return t = function () {\n            var t, i, o;\n            i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n            for (e in i) {\n              n = i[e], o.push(e + \"=\" + n);\n            }\n\n            return o;\n          }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n        }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n          return JSON.stringify(this);\n        }, i.prototype.toUTF16String = function () {\n          return e.UTF16String.box(this);\n        }, i.prototype.getCacheKey = function () {\n          return this.id.toString();\n        }, i;\n      }(e.BasicObject);\n    }.call(this), function () {\n      e.extend = function (t) {\n        var e, n;\n\n        for (e in t) {\n          n = t[e], this[e] = n;\n        }\n\n        return this;\n      };\n    }.call(this), function () {\n      e.extend({\n        defer: function defer(t) {\n          return setTimeout(t, 1);\n        }\n      });\n    }.call(this), function () {\n      var t, n;\n      e.extend({\n        normalizeSpaces: function normalizeSpaces(t) {\n          return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n        },\n        normalizeNewlines: function normalizeNewlines(t) {\n          return t.replace(/\\r\\n/g, \"\\n\");\n        },\n        breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n        squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n          return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n        },\n        summarizeStringChange: function summarizeStringChange(t, i) {\n          var o, r, s, a;\n          return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n            added: o,\n            removed: a\n          };\n        }\n      }), n = function n(_n, i) {\n        var o, r, s, a, u;\n        return _n.isEqualTo(i) ? [\"\", \"\"] : (r = t(_n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = _n.codepoints.slice(0, u).concat(_n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, _n), [r.utf16String.toString(), s.utf16String.toString()]);\n      }, t = function t(_t2, e) {\n        var n, i, o;\n\n        for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n          n++;\n        }\n\n        for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n          i--, o--;\n        }\n\n        return {\n          utf16String: _t2.slice(n, i),\n          offset: n\n        };\n      };\n    }.call(this), function () {\n      e.extend({\n        copyObject: function copyObject(t) {\n          var e, n, i;\n          null == t && (t = {}), n = {};\n\n          for (e in t) {\n            i = t[e], n[e] = i;\n          }\n\n          return n;\n        },\n        objectsAreEqual: function objectsAreEqual(t, e) {\n          var n, i;\n          if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n          for (n in t) {\n            if (i = t[n], i !== e[n]) return !1;\n          }\n\n          return !0;\n        }\n      });\n    }.call(this), function () {\n      var t = [].slice;\n      e.extend({\n        arraysAreEqual: function arraysAreEqual(t, e) {\n          var n, i, o, r;\n          if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n          for (i = n = 0, o = t.length; o > n; i = ++n) {\n            if (r = t[i], r !== e[i]) return !1;\n          }\n\n          return !0;\n        },\n        arrayStartsWith: function arrayStartsWith(t, n) {\n          return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n        },\n        spliceArray: function spliceArray() {\n          var e, n, i;\n          return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n        },\n        summarizeArrayChange: function summarizeArrayChange(t, e) {\n          var n, i, o, r, s, a, u, c, l, h, p;\n\n          for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n            p = t[r], o.add(p);\n          }\n\n          for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n            p = e[s], i.add(p), o.has(p) || n.push(p);\n          }\n\n          for (a = 0, l = t.length; l > a; a++) {\n            p = t[a], i.has(p) || h.push(p);\n          }\n\n          return {\n            added: n,\n            removed: h\n          };\n        }\n      });\n    }.call(this), function () {\n      var t, n, i, o;\n      t = null, n = null, o = null, i = null, e.extend({\n        getAllAttributeNames: function getAllAttributeNames() {\n          return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n        },\n        getBlockConfig: function getBlockConfig(t) {\n          return e.config.blockAttributes[t];\n        },\n        getBlockAttributeNames: function getBlockAttributeNames() {\n          return null != n ? n : n = Object.keys(e.config.blockAttributes);\n        },\n        getTextConfig: function getTextConfig(t) {\n          return e.config.textAttributes[t];\n        },\n        getTextAttributeNames: function getTextAttributeNames() {\n          return null != o ? o : o = Object.keys(e.config.textAttributes);\n        },\n        getListAttributeNames: function getListAttributeNames() {\n          var t, n;\n          return null != i ? i : i = function () {\n            var i, o;\n            i = e.config.blockAttributes, o = [];\n\n            for (t in i) {\n              n = i[t].listAttribute, null != n && o.push(n);\n            }\n\n            return o;\n          }();\n        }\n      });\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n        handleEvent: function handleEvent(n, i) {\n          var o, r, _s, a, u, c, l, h, p, d, f, g;\n\n          return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, _s = function s(t) {\n            var n;\n            return null != d && 0 === --d && _s.destroy(), n = e.findClosestElementFromNode(t.target, {\n              matchingSelector: p\n            }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n          }, _s.destroy = function () {\n            return r.removeEventListener(n, _s, f);\n          }, r.addEventListener(n, _s, f), _s;\n        },\n        handleEventOnce: function handleEventOnce(t, n) {\n          return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n        },\n        triggerEvent: function triggerEvent(n, i) {\n          var o, r, s, a, u, c, l;\n          return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n        },\n        elementMatchesSelector: function elementMatchesSelector(t, e) {\n          return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n        },\n        findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n          var i, o, r;\n\n          for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n            t = t.parentNode;\n          }\n\n          if (null != t) {\n            if (null == i) return t;\n            if (t.closest && null == r) return t.closest(i);\n\n            for (; t && t !== r;) {\n              if (e.elementMatchesSelector(t, i)) return t;\n              t = t.parentNode;\n            }\n          }\n        },\n        findInnerElement: function findInnerElement(t) {\n          for (; null != t ? t.firstElementChild : void 0;) {\n            t = t.firstElementChild;\n          }\n\n          return t;\n        },\n        innerElementIsActive: function innerElementIsActive(t) {\n          return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n        },\n        elementContainsNode: function elementContainsNode(t, e) {\n          if (t && e) for (; e;) {\n            if (e === t) return !0;\n            e = e.parentNode;\n          }\n        },\n        findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(t, e) {\n          var n;\n          if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n        },\n        findElementFromContainerAndOffset: function findElementFromContainerAndOffset(t, n) {\n          var i;\n          return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n        },\n        findChildIndexOfNode: function findChildIndexOfNode(t) {\n          var e;\n\n          if (null != t ? t.parentNode : void 0) {\n            for (e = 0; t = t.previousSibling;) {\n              e++;\n            }\n\n            return e;\n          }\n        },\n        removeNode: function removeNode(t) {\n          var e;\n          return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n        },\n        walkTree: function walkTree(t, e) {\n          var n, i, o, r, s;\n          return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n            switch (i) {\n              case \"element\":\n                return NodeFilter.SHOW_ELEMENT;\n\n              case \"text\":\n                return NodeFilter.SHOW_TEXT;\n\n              case \"comment\":\n                return NodeFilter.SHOW_COMMENT;\n\n              default:\n                return NodeFilter.SHOW_ALL;\n            }\n          }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n        },\n        tagName: function tagName(t) {\n          var e;\n          return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n        },\n        makeElement: function makeElement(t, e) {\n          var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n          if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n            attributes: e\n          }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n            l = e.attributes;\n\n            for (a in l) {\n              g = l[a], o.setAttribute(a, g);\n            }\n          }\n\n          if (e.style) {\n            h = e.style;\n\n            for (a in h) {\n              g = h[a], o.style[a] = g;\n            }\n          }\n\n          if (e.data) {\n            p = e.data;\n\n            for (a in p) {\n              g = p[a], o.dataset[a] = g;\n            }\n          }\n\n          if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n            i = d[r], o.classList.add(i);\n          }\n          if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n            n = f[s], o.appendChild(n);\n          }\n          return o;\n        },\n        getBlockTagNames: function getBlockTagNames() {\n          var t, n;\n          return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n            var i, o;\n            i = e.config.blockAttributes, o = [];\n\n            for (t in i) {\n              n = i[t].tagName, n && o.push(n);\n            }\n\n            return o;\n          }();\n        },\n        nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n          return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n        },\n        nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(t) {\n          var n, i;\n          return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n        },\n        nodeIsBlockStart: function nodeIsBlockStart(t, n) {\n          var i;\n          return i = (null != n ? n : {\n            strict: !0\n          }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n        },\n        nodeIsBlockStartComment: function nodeIsBlockStartComment(t) {\n          return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n        },\n        nodeIsCommentNode: function nodeIsCommentNode(t) {\n          return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n        },\n        nodeIsCursorTarget: function nodeIsCursorTarget(t, n) {\n          var i;\n          return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n        },\n        nodeIsAttachmentElement: function nodeIsAttachmentElement(t) {\n          return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n        },\n        nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n          return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n        },\n        nodeIsTextNode: function nodeIsTextNode(t) {\n          return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n        }\n      });\n    }.call(this), function () {\n      var t, n, i, o, r;\n      t = e.copyObject, o = e.objectsAreEqual, e.extend({\n        normalizeRange: i = function i(t) {\n          var e;\n          if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n        },\n        rangeIsCollapsed: function rangeIsCollapsed(t) {\n          var e, n, o;\n          if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n        },\n        rangesAreEqual: function rangesAreEqual(t, e) {\n          var n, o, s, a, u, c;\n          if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n        }\n      }), n = function n(e) {\n        return \"number\" == typeof e ? e : t(e);\n      }, r = function r(t, e) {\n        return \"number\" == typeof t ? t === e : o(t, e);\n      };\n    }.call(this), function () {\n      var t, n, i, o, r, s, a;\n      e.registerElement = function (t, e) {\n        var n, i;\n        return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n      }, o = function o(t, e) {\n        var n;\n        return n = i(e), n.textContent = t.replace(/%t/g, e);\n      }, i = function i(e) {\n        var n, i;\n        return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n      }, t = function t() {\n        var t;\n        return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n      }, n = function n(t) {\n        return document.head.querySelector(\"meta[name=\" + t + \"]\");\n      }, s = function s(t) {\n        var e, n, i;\n        n = {};\n\n        for (e in t) {\n          i = t[e], n[e] = \"function\" == typeof i ? {\n            value: i\n          } : i;\n        }\n\n        return n;\n      }, a = function () {\n        var t;\n        return t = function t(_t3) {\n          var e, n, i, o, r;\n\n          for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n            i = r[n], e[i] = _t3[i], delete _t3[i];\n          }\n\n          return e;\n        }, window.customElements ? function (e) {\n          var n, i, o, r, s;\n          return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function n() {\n            return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n          }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n        } : function (e) {\n          var n, i, o, r;\n          return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n        };\n      }(), r = function () {\n        return window.customElements ? function (t, e) {\n          var _n2;\n\n          return _n2 = function n() {\n            return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n          }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\n        } : function (t, e) {\n          var n, i;\n          return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n            prototype: i\n          }), Object.defineProperty(i, \"constructor\", {\n            value: n\n          }), n;\n        };\n      }();\n    }.call(this), function () {\n      var t, n;\n      e.extend({\n        getDOMSelection: function getDOMSelection() {\n          var t;\n          return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n        },\n        getDOMRange: function getDOMRange() {\n          var n, i;\n          return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n        },\n        setDOMRange: function setDOMRange(t) {\n          var n;\n          return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n        }\n      }), t = function t(_t4) {\n        return n(_t4.startContainer) || n(_t4.endContainer);\n      }, n = function n(t) {\n        return !Object.getPrototypeOf(t);\n      };\n    }.call(this), function () {\n      var t;\n      t = {\n        \"application/x-trix-feature-detection\": \"test\"\n      }, e.extend({\n        dataTransferIsPlainText: function dataTransferIsPlainText(t) {\n          var e, n, i;\n          return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n        },\n        dataTransferIsWritable: function dataTransferIsWritable(e) {\n          var n, i;\n\n          if (null != (null != e ? e.setData : void 0)) {\n            for (n in t) {\n              if (i = t[n], !function () {\n                try {\n                  return e.setData(n, i), e.getData(n) === i;\n                } catch (t) {}\n              }()) return;\n            }\n\n            return !0;\n          }\n        },\n        keyEventIsKeyboardCommand: function () {\n          return /Mac|^iP/.test(navigator.platform) ? function (t) {\n            return t.metaKey;\n          } : function (t) {\n            return t.ctrlKey;\n          };\n        }()\n      });\n    }.call(this), function () {\n      e.extend({\n        RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n        getDirection: function () {\n          var t, n, i, o;\n          return n = e.makeElement(\"input\", {\n            dir: \"auto\",\n            name: \"x\",\n            dirName: \"x.dir\"\n          }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n            try {\n              return new FormData(t).has(n.dirName);\n            } catch (e) {}\n          }(), o = function () {\n            try {\n              return n.matches(\":dir(ltr),:dir(rtl)\");\n            } catch (t) {}\n          }(), i ? function (e) {\n            return n.value = e, new FormData(t).get(n.dirName);\n          } : o ? function (t) {\n            return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n          } : function (t) {\n            var n;\n            return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n          };\n        }()\n      });\n    }.call(this), function () {}.call(this), function () {\n      var t,\n          n = function n(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var o in e) {\n          i.call(e, o) && (t[o] = e[o]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          i = {}.hasOwnProperty;\n\n      t = e.arraysAreEqual, e.Hash = function (i) {\n        function o(t) {\n          null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n        }\n\n        var r, s, a, u, c;\n        return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n          var e, n, i, o, s, a;\n          if (null == t && (t = []), !t.length) return new this();\n\n          for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n            s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n          }\n\n          return e;\n        }, o.box = function (t) {\n          return r(t);\n        }, o.prototype.add = function (t, e) {\n          return this.merge(u(t, e));\n        }, o.prototype.remove = function (t) {\n          return new e.Hash(s(this.values, t));\n        }, o.prototype.get = function (t) {\n          return this.values[t];\n        }, o.prototype.has = function (t) {\n          return t in this.values;\n        }, o.prototype.merge = function (t) {\n          return new e.Hash(a(this.values, c(t)));\n        }, o.prototype.slice = function (t) {\n          var n, i, o, r;\n\n          for (r = {}, n = 0, o = t.length; o > n; n++) {\n            i = t[n], this.has(i) && (r[i] = this.values[i]);\n          }\n\n          return new e.Hash(r);\n        }, o.prototype.getKeys = function () {\n          return Object.keys(this.values);\n        }, o.prototype.getKeysCommonToHash = function (t) {\n          var e, n, i, o, s;\n\n          for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n            n = o[e], this.values[n] === t.values[n] && s.push(n);\n          }\n\n          return s;\n        }, o.prototype.isEqualTo = function (e) {\n          return t(this.toArray(), r(e).toArray());\n        }, o.prototype.isEmpty = function () {\n          return 0 === this.getKeys().length;\n        }, o.prototype.toArray = function () {\n          var t, e, n;\n          return (null != this.array ? this.array : this.array = function () {\n            var i;\n            e = [], i = this.values;\n\n            for (t in i) {\n              n = i[t], e.push(t, n);\n            }\n\n            return e;\n          }.call(this)).slice(0);\n        }, o.prototype.toObject = function () {\n          return s(this.values);\n        }, o.prototype.toJSON = function () {\n          return this.toObject();\n        }, o.prototype.contentsForInspection = function () {\n          return {\n            values: JSON.stringify(this.values)\n          };\n        }, u = function u(t, e) {\n          var n;\n          return n = {}, n[t] = e, n;\n        }, a = function a(t, e) {\n          var n, i, o;\n          i = s(t);\n\n          for (n in e) {\n            o = e[n], i[n] = o;\n          }\n\n          return i;\n        }, s = function s(t, e) {\n          var n, i, o, r, s;\n\n          for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n            i = s[n], i !== e && (r[i] = t[i]);\n          }\n\n          return r;\n        }, r = function r(t) {\n          return t instanceof e.Hash ? t : new e.Hash(t);\n        }, c = function c(t) {\n          return t instanceof e.Hash ? t.values : t;\n        }, o;\n      }(e.Object);\n    }.call(this), function () {\n      e.ObjectGroup = function () {\n        function t(t, e) {\n          var n, i;\n          this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n            asTree: n,\n            depth: this.depth + 1\n          }));\n        }\n\n        return t.groupObjects = function (t, e) {\n          var n, i, o, r, s, a, u, c, l;\n\n          for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n            if (u = t[s], r) {\n              if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n                r.push(u);\n                continue;\n              }\n\n              c.push(new this(r, {\n                depth: o,\n                asTree: n\n              })), r = null;\n            }\n\n            (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n          }\n\n          return r && c.push(new this(r, {\n            depth: o,\n            asTree: n\n          })), c;\n        }, t.prototype.getObjects = function () {\n          return this.objects;\n        }, t.prototype.getDepth = function () {\n          return this.depth;\n        }, t.prototype.getCacheKey = function () {\n          var t, e, n, i, o;\n\n          for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n            i = o[t], e.push(i.getCacheKey());\n          }\n\n          return e.join(\"/\");\n        }, t;\n      }();\n    }.call(this), function () {\n      var t = function t(_t5, e) {\n        function i() {\n          this.constructor = _t5;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t5[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n      },\n          n = {}.hasOwnProperty;\n\n      e.ObjectMap = function (e) {\n        function n(t) {\n          var e, n, i, o, r;\n\n          for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n            r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n          }\n        }\n\n        return t(n, e), n.prototype.find = function (t) {\n          var e;\n          return e = JSON.stringify(t), this.objects[e];\n        }, n;\n      }(e.BasicObject);\n    }.call(this), function () {\n      e.ElementStore = function () {\n        function t(t) {\n          this.reset(t);\n        }\n\n        var e;\n        return t.prototype.add = function (t) {\n          var n;\n          return n = e(t), this.elements[n] = t;\n        }, t.prototype.remove = function (t) {\n          var n, i;\n          return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n        }, t.prototype.reset = function (t) {\n          var e, n, i;\n\n          for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n            e = t[n], this.add(e);\n          }\n\n          return t;\n        }, e = function e(t) {\n          return t.dataset.trixStoreKey;\n        }, t;\n      }();\n    }.call(this), function () {}.call(this), function () {\n      var t = function t(_t6, e) {\n        function i() {\n          this.constructor = _t6;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t6[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n      },\n          n = {}.hasOwnProperty;\n\n      e.Operation = function (e) {\n        function n() {\n          return n.__super__.constructor.apply(this, arguments);\n        }\n\n        return t(n, e), n.prototype.isPerforming = function () {\n          return this.performing === !0;\n        }, n.prototype.hasPerformed = function () {\n          return this.performed === !0;\n        }, n.prototype.hasSucceeded = function () {\n          return this.performed && this.succeeded;\n        }, n.prototype.hasFailed = function () {\n          return this.performed && !this.succeeded;\n        }, n.prototype.getPromise = function () {\n          return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n            return function (e, n) {\n              return t.performing = !0, t.perform(function (i, o) {\n                return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n              });\n            };\n          }(this));\n        }, n.prototype.perform = function (t) {\n          return t(!1);\n        }, n.prototype.release = function () {\n          var t;\n          return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n        }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s = function s(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          a.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          a = {}.hasOwnProperty;\n\n      e.UTF16String = function (t) {\n        function e(t, e) {\n          this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n        }\n\n        return s(e, t), e.box = function (t) {\n          return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n        }, e.fromUCS2String = function (t) {\n          return new this(t, o(t));\n        }, e.fromCodepoints = function (t) {\n          return new this(r(t), t);\n        }, e.prototype.offsetToUCS2Offset = function (t) {\n          return r(this.codepoints.slice(0, Math.max(0, t))).length;\n        }, e.prototype.offsetFromUCS2Offset = function (t) {\n          return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n        }, e.prototype.slice = function () {\n          var t;\n          return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n        }, e.prototype.charAt = function (t) {\n          return this.slice(t, t + 1);\n        }, e.prototype.isEqualTo = function (t) {\n          return this.constructor.box(t).ucs2String === this.ucs2String;\n        }, e.prototype.toJSON = function () {\n          return this.ucs2String;\n        }, e.prototype.getCacheKey = function () {\n          return this.ucs2String;\n        }, e.prototype.toString = function () {\n          return this.ucs2String;\n        }, e;\n      }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\uD83D\\uDC7C\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\uD83D\\uDC7C\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n        return Array.from(t).map(function (t) {\n          return t.codePointAt(0);\n        });\n      } : function (t) {\n        var e, n, i, o, r;\n\n        for (o = [], e = 0, i = t.length; i > e;) {\n          r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n        }\n\n        return o;\n      }, r = i ? function (t) {\n        return String.fromCodePoint.apply(String, t);\n      } : function (t) {\n        var e, n, i;\n        return e = function () {\n          var e, o, r;\n\n          for (r = [], e = 0, o = t.length; o > e; e++) {\n            i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n          }\n\n          return r;\n        }(), e.join(\"\");\n      };\n    }.call(this), function () {}.call(this), function () {}.call(this), function () {\n      e.config.lang = {\n        attachFiles: \"Attach Files\",\n        bold: \"Bold\",\n        bullets: \"Bullets\",\n        \"byte\": \"Byte\",\n        bytes: \"Bytes\",\n        captionPlaceholder: \"Add a caption\\u2026\",\n        code: \"Code\",\n        heading1: \"Heading\",\n        indent: \"Increase Level\",\n        italic: \"Italic\",\n        link: \"Link\",\n        numbers: \"Numbers\",\n        outdent: \"Decrease Level\",\n        quote: \"Quote\",\n        redo: \"Redo\",\n        remove: \"Remove\",\n        strike: \"Strikethrough\",\n        undo: \"Undo\",\n        unlink: \"Unlink\",\n        url: \"URL\",\n        urlPlaceholder: \"Enter a URL\\u2026\",\n        GB: \"GB\",\n        KB: \"KB\",\n        MB: \"MB\",\n        PB: \"PB\",\n        TB: \"TB\"\n      };\n    }.call(this), function () {\n      e.config.css = {\n        attachment: \"attachment\",\n        attachmentCaption: \"attachment__caption\",\n        attachmentCaptionEditor: \"attachment__caption-editor\",\n        attachmentMetadata: \"attachment__metadata\",\n        attachmentMetadataContainer: \"attachment__metadata-container\",\n        attachmentName: \"attachment__name\",\n        attachmentProgress: \"attachment__progress\",\n        attachmentSize: \"attachment__size\",\n        attachmentToolbar: \"attachment__toolbar\",\n        attachmentGallery: \"attachment-gallery\"\n      };\n    }.call(this), function () {\n      var t;\n      e.config.blockAttributes = t = {\n        \"default\": {\n          tagName: \"div\",\n          parse: !1\n        },\n        quote: {\n          tagName: \"blockquote\",\n          nestable: !0\n        },\n        heading1: {\n          tagName: \"h1\",\n          terminal: !0,\n          breakOnReturn: !0,\n          group: !1\n        },\n        code: {\n          tagName: \"pre\",\n          terminal: !0,\n          text: {\n            plaintext: !0\n          }\n        },\n        bulletList: {\n          tagName: \"ul\",\n          parse: !1\n        },\n        bullet: {\n          tagName: \"li\",\n          listAttribute: \"bulletList\",\n          group: !1,\n          nestable: !0,\n          test: function test(n) {\n            return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n          }\n        },\n        numberList: {\n          tagName: \"ol\",\n          parse: !1\n        },\n        number: {\n          tagName: \"li\",\n          listAttribute: \"numberList\",\n          group: !1,\n          nestable: !0,\n          test: function test(n) {\n            return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n          }\n        },\n        attachmentGallery: {\n          tagName: \"div\",\n          exclusive: !0,\n          terminal: !0,\n          parse: !1,\n          group: !1\n        }\n      };\n    }.call(this), function () {\n      var t, n;\n      t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n        prefix: \"IEC\",\n        precision: 2,\n        formatter: function formatter(e) {\n          var i, o, r, s, a;\n\n          switch (e) {\n            case 0:\n              return \"0 \" + t.bytes;\n\n            case 1:\n              return \"1 \" + t.byte;\n\n            default:\n              return i = function () {\n                switch (this.prefix) {\n                  case \"SI\":\n                    return 1e3;\n\n                  case \"IEC\":\n                    return 1024;\n                }\n              }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n          }\n        }\n      };\n    }.call(this), function () {\n      e.config.textAttributes = {\n        bold: {\n          tagName: \"strong\",\n          inheritable: !0,\n          parser: function parser(t) {\n            var e;\n            return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n          }\n        },\n        italic: {\n          tagName: \"em\",\n          inheritable: !0,\n          parser: function parser(t) {\n            var e;\n            return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n          }\n        },\n        href: {\n          groupTagName: \"a\",\n          parser: function parser(t) {\n            var n, i, o;\n            return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n              matchingSelector: o\n            })) ? i.getAttribute(\"href\") : void 0;\n          }\n        },\n        strike: {\n          tagName: \"del\",\n          inheritable: !0\n        },\n        frozen: {\n          style: {\n            backgroundColor: \"highlight\"\n          }\n        }\n      };\n    }.call(this), function () {\n      var t, n, i, o, r;\n      r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"<!--block-->\", \"g\"), e.extend({\n        serializers: {\n          \"application/json\": function applicationJson(t) {\n            var n;\n            if (t instanceof e.Document) n = t;else {\n              if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n              n = e.Document.fromHTML(t.innerHTML);\n            }\n            return n.toSerializableDocument().toJSONString();\n          },\n          \"text/html\": function textHtml(s) {\n            var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n            if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n              if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n              l = s.cloneNode(!0);\n            }\n\n            for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n              c = A[h], e.removeNode(c);\n            }\n\n            for (p = 0, m = o.length; m > p; p++) {\n              for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n                c = C[d], c.removeAttribute(a);\n              }\n            }\n\n            for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n              c = x[f];\n\n              try {\n                u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n                for (b in u) {\n                  w = u[b], c.setAttribute(b, w);\n                }\n              } catch (E) {}\n            }\n\n            return l.innerHTML.replace(t, \"\");\n          }\n        },\n        deserializers: {\n          \"application/json\": function applicationJson(t) {\n            return e.Document.fromJSONString(t);\n          },\n          \"text/html\": function textHtml(t) {\n            return e.Document.fromHTML(t);\n          }\n        },\n        serializeToContentType: function serializeToContentType(t, n) {\n          var i;\n          if (i = e.serializers[n]) return i(t);\n          throw new Error(\"unknown content type: \" + n);\n        },\n        deserializeFromContentType: function deserializeFromContentType(t, n) {\n          var i;\n          if (i = e.deserializers[n]) return i(t);\n          throw new Error(\"unknown content type: \" + n);\n        }\n      });\n    }.call(this), function () {\n      var t;\n      t = e.config.lang, e.config.toolbar = {\n        getDefaultHTML: function getDefaultHTML() {\n          return '<div class=\"trix-button-row\">\\n  <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"' + t.bold + '\" tabindex=\"-1\">' + t.bold + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"' + t.italic + '\" tabindex=\"-1\">' + t.italic + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"' + t.strike + '\" tabindex=\"-1\">' + t.strike + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"' + t.link + '\" tabindex=\"-1\">' + t.link + '</button>\\n  </span>\\n\\n  <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"' + t.heading1 + '\" tabindex=\"-1\">' + t.heading1 + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"' + t.quote + '\" tabindex=\"-1\">' + t.quote + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"' + t.code + '\" tabindex=\"-1\">' + t.code + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"' + t.bullets + '\" tabindex=\"-1\">' + t.bullets + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"' + t.numbers + '\" tabindex=\"-1\">' + t.numbers + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"' + t.outdent + '\" tabindex=\"-1\">' + t.outdent + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"' + t.indent + '\" tabindex=\"-1\">' + t.indent + '</button>\\n  </span>\\n\\n  <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"' + t.attachFiles + '\" tabindex=\"-1\">' + t.attachFiles + '</button>\\n  </span>\\n\\n  <span class=\"trix-button-group-spacer\"></span>\\n\\n  <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"' + t.undo + '\" tabindex=\"-1\">' + t.undo + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"' + t.redo + '\" tabindex=\"-1\">' + t.redo + '</button>\\n  </span>\\n</div>\\n\\n<div class=\"trix-dialogs\" data-trix-dialogs>\\n  <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n    <div class=\"trix-dialog__link-fields\">\\n      <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"' + t.urlPlaceholder + '\" aria-label=\"' + t.url + '\" required data-trix-input>\\n      <div class=\"trix-button-group\">\\n        <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"' + t.link + '\" data-trix-method=\"setAttribute\">\\n        <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"' + t.unlink + '\" data-trix-method=\"removeAttribute\">\\n      </div>\\n    </div>\\n  </div>\\n</div>';\n        }\n      };\n    }.call(this), function () {\n      e.config.undoInterval = 5e3;\n    }.call(this), function () {\n      e.config.attachments = {\n        preview: {\n          presentation: \"gallery\",\n          caption: {\n            name: !0,\n            size: !0\n          }\n        },\n        file: {\n          caption: {\n            size: !0\n          }\n        }\n      };\n    }.call(this), function () {\n      e.config.keyNames = {\n        8: \"backspace\",\n        9: \"tab\",\n        13: \"return\",\n        27: \"escape\",\n        37: \"left\",\n        39: \"right\",\n        46: \"delete\",\n        68: \"d\",\n        72: \"h\",\n        79: \"o\"\n      };\n    }.call(this), function () {\n      e.config.input = {\n        level2Enabled: !0,\n        getLevel: function getLevel() {\n          return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n        },\n        pickFiles: function pickFiles(t) {\n          var n;\n          return n = e.makeElement(\"input\", {\n            type: \"file\",\n            multiple: !0,\n            hidden: !0,\n            id: this.fileInputId\n          }), n.addEventListener(\"change\", function () {\n            return t(n.files), e.removeNode(n);\n          }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n        },\n        fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n      };\n    }.call(this), function () {}.call(this), function () {\n      e.registerElement(\"trix-toolbar\", {\n        defaultCSS: \"%t {\\n  display: block;\\n}\\n\\n%t {\\n  white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n  display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n  display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n  background-color: #ffdddd;\\n}\",\n        initialize: function initialize() {\n          return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n        }\n      });\n    }.call(this), function () {\n      var t = function t(_t7, e) {\n        function i() {\n          this.constructor = _t7;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t7[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n      },\n          n = {}.hasOwnProperty,\n          i = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      e.ObjectView = function (n) {\n        function o(t, e) {\n          this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n        }\n\n        return t(o, n), o.prototype.getNodes = function () {\n          var t, e, n, i, o;\n\n          for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n            n = i[t], o.push(n.cloneNode(!0));\n          }\n\n          return o;\n        }, o.prototype.invalidate = function () {\n          var t;\n          return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n        }, o.prototype.invalidateViewForObject = function (t) {\n          var e;\n          return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n        }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n          var n;\n          return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n        }, o.prototype.createChildView = function (t, n, i) {\n          var o;\n          return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n        }, o.prototype.recordChildView = function (t) {\n          return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n        }, o.prototype.getAllChildViews = function () {\n          var t, e, n, i, o;\n\n          for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n            t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n          }\n\n          return o;\n        }, o.prototype.findElement = function () {\n          return this.findElementForObject(this.object);\n        }, o.prototype.findElementForObject = function (t) {\n          var e;\n          return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n        }, o.prototype.findViewForObject = function (t) {\n          var e, n, i, o;\n\n          for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n            if (o = i[e], o.object === t) return o;\n          }\n        }, o.prototype.getViewCache = function () {\n          return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n        }, o.prototype.isViewCachingEnabled = function () {\n          return this.shouldCacheViews !== !1;\n        }, o.prototype.enableViewCaching = function () {\n          return this.shouldCacheViews = !0;\n        }, o.prototype.disableViewCaching = function () {\n          return this.shouldCacheViews = !1;\n        }, o.prototype.getCachedViewForObject = function (t) {\n          var e;\n          return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n        }, o.prototype.cacheViewForObject = function (t, e) {\n          var n;\n          return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n        }, o.prototype.garbageCollectCachedViews = function () {\n          var t, e, n, o, r, s;\n\n          if (t = this.getViewCache()) {\n            s = this.getAllChildViews().concat(this), n = function () {\n              var t, e, n;\n\n              for (n = [], t = 0, e = s.length; e > t; t++) {\n                r = s[t], n.push(r.object.getCacheKey());\n              }\n\n              return n;\n            }(), o = [];\n\n            for (e in t) {\n              i.call(n, e) < 0 && o.push(delete t[e]);\n            }\n\n            return o;\n          }\n        }, o;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t = function t(_t8, e) {\n        function i() {\n          this.constructor = _t8;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t8[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n      },\n          n = {}.hasOwnProperty;\n\n      e.ObjectGroupView = function (e) {\n        function n() {\n          n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n        }\n\n        return t(n, e), n.prototype.getChildViews = function () {\n          var t, e, n, i;\n          if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) {\n            n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n          }\n          return this.childViews;\n        }, n.prototype.createNodes = function () {\n          var t, e, n, i, o, r, s, a, u;\n\n          for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n            for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n              r = a[n], t.appendChild(r);\n            }\n          }\n\n          return [t];\n        }, n.prototype.createContainerElement = function (t) {\n          return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n        }, n;\n      }(e.ObjectView);\n    }.call(this), function () {\n      var t = function t(_t9, e) {\n        function i() {\n          this.constructor = _t9;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t9[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n      },\n          n = {}.hasOwnProperty;\n\n      e.Controller = function (e) {\n        function n() {\n          return n.__super__.constructor.apply(this, arguments);\n        }\n\n        return t(n, e), n;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s,\n          a = function a(t, e) {\n        return function () {\n          return t.apply(e, arguments);\n        };\n      },\n          u = function u(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          c.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          c = {}.hasOwnProperty,\n          l = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n        function c(t) {\n          this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n        }\n\n        var _h, p, d, f;\n\n        return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n          attributes: !0,\n          childList: !0,\n          characterData: !0,\n          characterDataOldValue: !0,\n          subtree: !0\n        }, c.prototype.start = function () {\n          return this.reset(), this.observer.observe(this.element, f);\n        }, c.prototype.stop = function () {\n          return this.observer.disconnect();\n        }, c.prototype.didMutate = function (t) {\n          var e, n;\n          return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n        }, c.prototype.reset = function () {\n          return this.mutations = [];\n        }, c.prototype.findSignificantMutations = function (t) {\n          var e, n, i, o;\n\n          for (o = [], e = 0, n = t.length; n > e; e++) {\n            i = t[e], this.mutationIsSignificant(i) && o.push(i);\n          }\n\n          return o;\n        }, c.prototype.mutationIsSignificant = function (t) {\n          var e, n, i, o;\n          if (this.nodeIsMutable(t.target)) return !1;\n\n          for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n            if (i = o[e], this.nodeIsSignificant(i)) return !0;\n          }\n\n          return !1;\n        }, c.prototype.nodeIsSignificant = function (t) {\n          return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n        }, c.prototype.nodeIsMutable = function (e) {\n          return t(e, {\n            matchingSelector: d\n          });\n        }, c.prototype.nodesModifiedByMutation = function (t) {\n          var e;\n\n          switch (e = [], t.type) {\n            case \"attributes\":\n              t.attributeName !== p && e.push(t.target);\n              break;\n\n            case \"characterData\":\n              e.push(t.target.parentNode), e.push(t.target);\n              break;\n\n            case \"childList\":\n              e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n          }\n\n          return e;\n        }, c.prototype.getMutationSummary = function () {\n          return this.getTextMutationSummary();\n        }, c.prototype.getTextMutationSummary = function () {\n          var t, e, n, i, o, r, s, a, u, c, h;\n\n          for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) {\n            e = u[r], l.call(n, e) < 0 && n.push(e);\n          }\n\n          return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n        }, c.prototype.getMutationsByType = function (t) {\n          var e, n, i, o, r;\n\n          for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n            i = o[e], i.type === t && r.push(i);\n          }\n\n          return r;\n        }, c.prototype.getTextChangesFromChildList = function () {\n          var t, e, i, r, s, a, u, c, l, p, d;\n\n          for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n            s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n          }\n\n          return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = _h(t), d = _h(u)), {\n            additions: function () {\n              var t, e, n;\n\n              for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n                l = p[i], l !== d[i] && n.push(o(l));\n              }\n\n              return n;\n            }(),\n            deletions: function () {\n              var t, e, n;\n\n              for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n                l = d[i], l !== p[i] && n.push(o(l));\n              }\n\n              return n;\n            }()\n          };\n        }, c.prototype.getTextChangesFromCharacterData = function () {\n          var t, e, n, i, s, a, u, c;\n          return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n            additions: t ? [t] : [],\n            deletions: u ? [u] : []\n          };\n        }, _h = function h(t) {\n          var e, n, i, o;\n\n          for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n            switch (i = t[e], i.nodeType) {\n              case Node.TEXT_NODE:\n                o.push(i.data);\n                break;\n\n              case Node.ELEMENT_NODE:\n                \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n            }\n          }\n\n          return o;\n        }, c;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t = function t(_t10, e) {\n        function i() {\n          this.constructor = _t10;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t10[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n      },\n          n = {}.hasOwnProperty;\n\n      e.FileVerificationOperation = function (e) {\n        function n(t) {\n          this.file = t;\n        }\n\n        return t(n, e), n.prototype.perform = function (t) {\n          var e;\n          return e = new FileReader(), e.onerror = function () {\n            return t(!1);\n          }, e.onload = function (n) {\n            return function () {\n              e.onerror = null;\n\n              try {\n                e.abort();\n              } catch (i) {}\n\n              return t(!0, n.file);\n            };\n          }(this), e.readAsArrayBuffer(this.file);\n        }, n;\n      }(e.Operation);\n    }.call(this), function () {\n      var t,\n          n,\n          i = function i(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          o.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          o = {}.hasOwnProperty;\n\n      t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n        function r(n) {\n          var i;\n          this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n          for (i in this.events) {\n            t(i, {\n              onElement: this.element,\n              withCallback: this.handlerFor(i)\n            });\n          }\n        }\n\n        return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n          return this.mutationObserver.stop();\n        }, r.prototype.editorDidSyncDocumentView = function () {\n          return this.mutationObserver.start();\n        }, r.prototype.requestRender = function () {\n          var t;\n          return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n        }, r.prototype.requestReparse = function () {\n          var t;\n          return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n        }, r.prototype.attachFiles = function (t) {\n          var n, i;\n          return i = function () {\n            var i, o, r;\n\n            for (r = [], i = 0, o = t.length; o > i; i++) {\n              n = t[i], r.push(new e.FileVerificationOperation(n));\n            }\n\n            return r;\n          }(), Promise.all(i).then(function (t) {\n            return function (e) {\n              return t.handleInput(function () {\n                var t, n;\n                return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n              });\n            };\n          }(this));\n        }, r.prototype.handlerFor = function (t) {\n          return function (e) {\n            return function (i) {\n              return i.defaultPrevented ? void 0 : e.handleInput(function () {\n                return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n              });\n            };\n          }(this);\n        }, r.prototype.handleInput = function (t) {\n          var e, n;\n\n          try {\n            return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n          } finally {\n            null != (n = this.delegate) && n.inputControllerDidHandleInput();\n          }\n        }, r.prototype.createLinkHTML = function (t, e) {\n          var n;\n          return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n        }, r;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s,\n          a,\n          u,\n          c,\n          l,\n          h,\n          p,\n          d,\n          f = function f(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          g.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          g = {}.hasOwnProperty,\n          m = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n        function s() {\n          s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n        }\n\n        var d;\n        return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n          var e, n;\n          null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n          for (e in t) {\n            n = t[e], this.inputSummary[e] = n;\n          }\n\n          return this.inputSummary;\n        }, s.prototype.resetInputSummary = function () {\n          return this.inputSummary = {};\n        }, s.prototype.reset = function () {\n          return this.resetInputSummary(), e.selectionChangeObserver.reset();\n        }, s.prototype.elementDidMutate = function (t) {\n          var e;\n          return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n            return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n          });\n        }, s.prototype.mutationIsExpected = function (t) {\n          var e, n, i, o, r, s, a, u, c, l;\n          return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n        }, s.prototype.mutationIsSignificant = function (t) {\n          var e, n, i;\n          return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n        }, s.prototype.events = {\n          keydown: function keydown(t) {\n            var n, i, o, r, s, c, l, h, p;\n\n            if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n              for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) {\n                l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n              }\n\n              null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n                keyName: r\n              }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n            }\n\n            return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n              var e, n, i, o;\n\n              for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n                l = i[e], t[l + \"Key\"] && o.push(l);\n              }\n\n              return o;\n            }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n          },\n          keypress: function keypress(t) {\n            var e, n, i;\n            if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n              textAdded: i,\n              didDelete: this.selectionIsExpanded()\n            })) : void 0;\n          },\n          textInput: function textInput(t) {\n            var e, n, i, o;\n            return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n              textAdded: e\n            }), this.setSelectedRange(n)) : void 0;\n          },\n          dragenter: function dragenter(t) {\n            return t.preventDefault();\n          },\n          dragstart: function dragstart(t) {\n            var e, n;\n            return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n          },\n          dragover: function dragover(t) {\n            var e, n;\n            return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n              x: t.clientX,\n              y: t.clientY\n            }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n          },\n          dragend: function dragend() {\n            var t;\n            return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n          },\n          drop: function drop(t) {\n            var n, i, o, r, s, a, u, c, l;\n            return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n              x: t.clientX,\n              y: t.clientY\n            }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n          },\n          cut: function cut(t) {\n            var e, n;\n            return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n          },\n          copy: function copy(t) {\n            var e;\n            return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n          },\n          paste: function paste(t) {\n            var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n            return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n              clipboard: n\n            }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n              return function (e) {\n                var n, i, o;\n                return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n              };\n            }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n              textAdded: L,\n              didDelete: this.selectionIsExpanded()\n            }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n              textAdded: l.string,\n              didDelete: this.selectionIsExpanded()\n            }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n          },\n          compositionstart: function compositionstart(t) {\n            return this.getCompositionInput().start(t.data);\n          },\n          compositionupdate: function compositionupdate(t) {\n            return this.getCompositionInput().update(t.data);\n          },\n          compositionend: function compositionend(t) {\n            return this.getCompositionInput().end(t.data);\n          },\n          beforeinput: function beforeinput() {\n            return this.inputSummary.didInput = !0;\n          },\n          input: function input(t) {\n            return this.inputSummary.didInput = !0, t.stopPropagation();\n          }\n        }, s.prototype.keys = {\n          backspace: function backspace(t) {\n            var e;\n            return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n          },\n          \"delete\": function _delete(t) {\n            var e;\n            return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n          },\n          \"return\": function _return() {\n            var t, e;\n            return this.setInputSummary({\n              preferDocument: !0\n            }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n          },\n          tab: function tab(t) {\n            var e, n;\n            return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n          },\n          left: function left(t) {\n            var e;\n            return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n          },\n          right: function right(t) {\n            var e;\n            return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n          },\n          control: {\n            d: function d(t) {\n              var e;\n              return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n            },\n            h: function h(t) {\n              var e;\n              return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n            },\n            o: function o(t) {\n              var e, n;\n              return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n                updatePosition: !1\n              }), this.requestRender();\n            }\n          },\n          shift: {\n            \"return\": function _return(t) {\n              var e, n;\n              return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n            },\n            tab: function tab(t) {\n              var e, n;\n              return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n            },\n            left: function left(t) {\n              return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n            },\n            right: function right(t) {\n              return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n            }\n          },\n          alt: {\n            backspace: function backspace() {\n              var t;\n              return this.setInputSummary({\n                preferDocument: !1\n              }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n            }\n          },\n          meta: {\n            backspace: function backspace() {\n              var t;\n              return this.setInputSummary({\n                preferDocument: !1\n              }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n            }\n          }\n        }, s.prototype.getCompositionInput = function () {\n          return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n        }, s.prototype.isComposing = function () {\n          return null != this.compositionInput && !this.compositionInput.isEnded();\n        }, s.prototype.deleteInDirection = function (t, e) {\n          var n;\n          return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n            didDelete: !0\n          }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n        }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n          var n, i;\n          if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n        }, s.prototype.canAcceptDataTransfer = function (t) {\n          var e, n, i, o, r, s;\n\n          for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n            r = o[e], s[r] = !0;\n          }\n\n          return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n        }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n          var n, i, o;\n          return i = this.getSelectedRange(), o = {\n            position: \"absolute\",\n            left: window.pageXOffset + \"px\",\n            top: window.pageYOffset + \"px\",\n            opacity: 0\n          }, n = c({\n            style: o,\n            tagName: \"div\",\n            editable: !0\n          }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n            return function () {\n              var r;\n              return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n            };\n          }(this));\n        }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n      }(e.InputController), r = function r(t) {\n        var e, n;\n        return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n      }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function p(t) {\n        var n;\n        return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n      }, h = function h(t) {\n        var e, n, i, o, r, s, a, u, c, l;\n\n        if (u = t.clipboardData) {\n          if (m.call(u.types, \"text/html\") >= 0) {\n            for (c = u.types, i = 0, s = c.length; s > i; i++) {\n              if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n            }\n\n            return !1;\n          }\n\n          return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n        }\n      }, t = function (t) {\n        function e(t) {\n          var e;\n          this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n        }\n\n        return f(e, t), e.prototype.start = function (t) {\n          var e, n;\n          return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n        }, e.prototype.update = function (t) {\n          var e;\n          return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n        }, e.prototype.end = function (t) {\n          var e, n, i, o;\n          return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n            preferDocument: !0,\n            didInput: !1\n          }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n        }, e.prototype.getEndData = function () {\n          return this.data.end;\n        }, e.prototype.isEnded = function () {\n          return null != this.getEndData();\n        }, e.prototype.isSignificant = function () {\n          return n.composesExistingText ? this.inputSummary.didInput : !0;\n        }, e.prototype.canApplyToDocument = function () {\n          var t, e;\n          return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n        }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o = function o(t, e) {\n        return function () {\n          return t.apply(e, arguments);\n        };\n      },\n          r = function r(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          s.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          s = {}.hasOwnProperty,\n          a = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n        function u() {\n          return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n        }\n\n        var c, l, h, p, d, f;\n        return r(u, s), u.prototype.elementDidMutate = function () {\n          var t;\n          return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n        }, u.prototype.scheduleRender = function () {\n          return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n        }, u.prototype.render = function () {\n          var t;\n          return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n        }, u.prototype.reparse = function () {\n          var t;\n          return null != (t = this.delegate) ? t.reparse() : void 0;\n        }, u.prototype.events = {\n          keydown: function keydown(t) {\n            var e, i, o, r;\n\n            if (n(t)) {\n              if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n            } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n          },\n          paste: function paste(t) {\n            var e, n, i, o, r, s, a, u, c;\n            return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n              type: \"text/plain\",\n              string: t.clipboardData.getData(\"text/plain\")\n            }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n              type: \"text/html\",\n              html: this.createLinkHTML(e)\n            }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n          },\n          beforeinput: function beforeinput(t) {\n            var e;\n            return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n          },\n          input: function input() {\n            return e.selectionChangeObserver.reset();\n          },\n          dragstart: function dragstart(t) {\n            var e, n;\n            return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n              range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n              point: d(t)\n            }) : void 0;\n          },\n          dragenter: function dragenter(t) {\n            return c(t) ? t.preventDefault() : void 0;\n          },\n          dragover: function dragover(t) {\n            var e, n;\n\n            if (this.dragging) {\n              if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n            } else if (c(t)) return t.preventDefault();\n          },\n          drop: function drop(t) {\n            var e, n, i, o;\n            return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n          },\n          dragend: function dragend() {\n            var t;\n            return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n          },\n          compositionend: function compositionend() {\n            return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n          }\n        }, u.prototype.keys = {\n          ArrowLeft: function ArrowLeft() {\n            var t, e;\n            return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n          },\n          ArrowRight: function ArrowRight() {\n            var t, e;\n            return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n          },\n          Backspace: function Backspace() {\n            var t, e, n;\n            return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n          },\n          Tab: function Tab() {\n            var t, e;\n            return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n          },\n          \"Tab+Shift\": function TabShift() {\n            var t, e;\n            return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n          }\n        }, u.prototype.inputTypes = {\n          deleteByComposition: function deleteByComposition() {\n            return this.deleteInDirection(\"backward\", {\n              recordUndoEntry: !1\n            });\n          },\n          deleteByCut: function deleteByCut() {\n            return this.deleteInDirection(\"backward\");\n          },\n          deleteByDrag: function deleteByDrag() {\n            return this.event.preventDefault(), this.withTargetDOMRange(function () {\n              var t;\n              return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n            });\n          },\n          deleteCompositionText: function deleteCompositionText() {\n            return this.deleteInDirection(\"backward\", {\n              recordUndoEntry: !1\n            });\n          },\n          deleteContent: function deleteContent() {\n            return this.deleteInDirection(\"backward\");\n          },\n          deleteContentBackward: function deleteContentBackward() {\n            return this.deleteInDirection(\"backward\");\n          },\n          deleteContentForward: function deleteContentForward() {\n            return this.deleteInDirection(\"forward\");\n          },\n          deleteEntireSoftLine: function deleteEntireSoftLine() {\n            return this.deleteInDirection(\"forward\");\n          },\n          deleteHardLineBackward: function deleteHardLineBackward() {\n            return this.deleteInDirection(\"backward\");\n          },\n          deleteHardLineForward: function deleteHardLineForward() {\n            return this.deleteInDirection(\"forward\");\n          },\n          deleteSoftLineBackward: function deleteSoftLineBackward() {\n            return this.deleteInDirection(\"backward\");\n          },\n          deleteSoftLineForward: function deleteSoftLineForward() {\n            return this.deleteInDirection(\"forward\");\n          },\n          deleteWordBackward: function deleteWordBackward() {\n            return this.deleteInDirection(\"backward\");\n          },\n          deleteWordForward: function deleteWordForward() {\n            return this.deleteInDirection(\"forward\");\n          },\n          formatBackColor: function formatBackColor() {\n            return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n          },\n          formatBold: function formatBold() {\n            return this.toggleAttributeIfSupported(\"bold\");\n          },\n          formatFontColor: function formatFontColor() {\n            return this.activateAttributeIfSupported(\"color\", this.event.data);\n          },\n          formatFontName: function formatFontName() {\n            return this.activateAttributeIfSupported(\"font\", this.event.data);\n          },\n          formatIndent: function formatIndent() {\n            var t;\n            return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n              var t;\n              return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n            }) : void 0;\n          },\n          formatItalic: function formatItalic() {\n            return this.toggleAttributeIfSupported(\"italic\");\n          },\n          formatJustifyCenter: function formatJustifyCenter() {\n            return this.toggleAttributeIfSupported(\"justifyCenter\");\n          },\n          formatJustifyFull: function formatJustifyFull() {\n            return this.toggleAttributeIfSupported(\"justifyFull\");\n          },\n          formatJustifyLeft: function formatJustifyLeft() {\n            return this.toggleAttributeIfSupported(\"justifyLeft\");\n          },\n          formatJustifyRight: function formatJustifyRight() {\n            return this.toggleAttributeIfSupported(\"justifyRight\");\n          },\n          formatOutdent: function formatOutdent() {\n            var t;\n            return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n              var t;\n              return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n            }) : void 0;\n          },\n          formatRemove: function formatRemove() {\n            return this.withTargetDOMRange(function () {\n              var t, e, n, i;\n              i = [];\n\n              for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n                i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n              }\n\n              return i;\n            });\n          },\n          formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n            return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n          },\n          formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n            return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n          },\n          formatStrikeThrough: function formatStrikeThrough() {\n            return this.toggleAttributeIfSupported(\"strike\");\n          },\n          formatSubscript: function formatSubscript() {\n            return this.toggleAttributeIfSupported(\"sub\");\n          },\n          formatSuperscript: function formatSuperscript() {\n            return this.toggleAttributeIfSupported(\"sup\");\n          },\n          formatUnderline: function formatUnderline() {\n            return this.toggleAttributeIfSupported(\"underline\");\n          },\n          historyRedo: function historyRedo() {\n            var t;\n            return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n          },\n          historyUndo: function historyUndo() {\n            var t;\n            return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n          },\n          insertCompositionText: function insertCompositionText() {\n            return this.composing = !0, this.insertString(this.event.data);\n          },\n          insertFromComposition: function insertFromComposition() {\n            return this.composing = !1, this.insertString(this.event.data);\n          },\n          insertFromDrop: function insertFromDrop() {\n            var t, e;\n            return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n              var e;\n              return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n            })) : void 0;\n          },\n          insertFromPaste: function insertFromPaste() {\n            var n, i, o, r, s, a, u, c, l, h, p;\n            return n = this.event.dataTransfer, s = {\n              dataTransfer: n\n            }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n              var t;\n              return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n            }), this.afterRender = function (t) {\n              return function () {\n                var e;\n                return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n              };\n            }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n              var t;\n              return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n            }), this.afterRender = function (t) {\n              return function () {\n                var e;\n                return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n              };\n            }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n              var t;\n              return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n            }), this.afterRender = function (t) {\n              return function () {\n                var e;\n                return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n              };\n            }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n              var t;\n              return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n            }), this.afterRender = function (t) {\n              return function () {\n                var e;\n                return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n              };\n            }(this)) : void 0;\n          },\n          insertFromYank: function insertFromYank() {\n            return this.insertString(this.event.data);\n          },\n          insertLineBreak: function insertLineBreak() {\n            return this.insertString(\"\\n\");\n          },\n          insertLink: function insertLink() {\n            return this.activateAttributeIfSupported(\"href\", this.event.data);\n          },\n          insertOrderedList: function insertOrderedList() {\n            return this.toggleAttributeIfSupported(\"number\");\n          },\n          insertParagraph: function insertParagraph() {\n            var t;\n            return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n              var t;\n              return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n            });\n          },\n          insertReplacementText: function insertReplacementText() {\n            return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n              updatePosition: !1\n            });\n          },\n          insertText: function insertText() {\n            var t, e;\n            return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n          },\n          insertTranspose: function insertTranspose() {\n            return this.insertString(this.event.data);\n          },\n          insertUnorderedList: function insertUnorderedList() {\n            return this.toggleAttributeIfSupported(\"bullet\");\n          }\n        }, u.prototype.insertString = function (t, e) {\n          var n;\n          return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n            var n;\n            return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n          });\n        }, u.prototype.toggleAttributeIfSupported = function (t) {\n          var n;\n          return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n            var e;\n            return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n          })) : void 0;\n        }, u.prototype.activateAttributeIfSupported = function (t, n) {\n          var i;\n          return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n            var e;\n            return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n          })) : void 0;\n        }, u.prototype.deleteInDirection = function (t, e) {\n          var n, i, o, r;\n          return o = (null != e ? e : {\n            recordUndoEntry: !0\n          }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n            return function () {\n              var n;\n              return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n            };\n          }(this), (n = this.getTargetDOMRange({\n            minLength: 2\n          })) ? this.withTargetDOMRange(n, i) : i();\n        }, u.prototype.withTargetDOMRange = function (t, n) {\n          var i;\n          return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n        }, u.prototype.getTargetDOMRange = function (t) {\n          var e, n, i, o;\n          return i = (null != t ? t : {\n            minLength: 0\n          }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n        }, f = function f(t) {\n          var e;\n          return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n        }, u.prototype.withEvent = function (t, e) {\n          var n;\n          this.event = t;\n\n          try {\n            n = e.call(this);\n          } finally {\n            this.event = null;\n          }\n\n          return n;\n        }, c = function c(t) {\n          var e, n;\n          return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n        }, h = function h(t) {\n          var e;\n          return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n        }, p = function p(t) {\n          var e;\n          return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n        }, l = function l(t) {\n          var e;\n          return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n        }, d = function d(t) {\n          return {\n            x: t.clientX,\n            y: t.clientY\n          };\n        }, u;\n      }(e.InputController);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s,\n          a,\n          u,\n          c = function c(t, e) {\n        return function () {\n          return t.apply(e, arguments);\n        };\n      },\n          l = function l(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          h.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          h = {}.hasOwnProperty;\n\n      n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n        function h(t, e, n, i) {\n          this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n        }\n\n        var p;\n        return l(h, a), p = function p(t) {\n          return function () {\n            var e;\n            return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n          };\n        }, h.prototype.install = function () {\n          return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n        }, h.prototype.uninstall = function () {\n          var t, e;\n\n          for (this.savePendingCaption(); e = this.undos.pop();) {\n            e();\n          }\n\n          return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n        }, h.prototype.savePendingCaption = function () {\n          var t, e, n;\n          return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n            caption: t\n          }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n        }, h.prototype.makeElementMutable = p(function () {\n          return {\n            \"do\": function (t) {\n              return function () {\n                return t.element.dataset.trixMutable = !0;\n              };\n            }(this),\n            undo: function (t) {\n              return function () {\n                return delete t.element.dataset.trixMutable;\n              };\n            }(this)\n          };\n        }), h.prototype.addToolbar = p(function () {\n          var n;\n          return n = s({\n            tagName: \"div\",\n            className: t.attachmentToolbar,\n            data: {\n              trixMutable: !0\n            },\n            childNodes: s({\n              tagName: \"div\",\n              className: \"trix-button-row\",\n              childNodes: s({\n                tagName: \"span\",\n                className: \"trix-button-group trix-button-group--actions\",\n                childNodes: s({\n                  tagName: \"button\",\n                  className: \"trix-button trix-button--remove\",\n                  textContent: r.remove,\n                  attributes: {\n                    title: r.remove\n                  },\n                  data: {\n                    trixAction: \"remove\"\n                  }\n                })\n              })\n            })\n          }), this.attachment.isPreviewable() && n.appendChild(s({\n            tagName: \"div\",\n            className: t.attachmentMetadataContainer,\n            childNodes: s({\n              tagName: \"span\",\n              className: t.attachmentMetadata,\n              childNodes: [s({\n                tagName: \"span\",\n                className: t.attachmentName,\n                textContent: this.attachment.getFilename(),\n                attributes: {\n                  title: this.attachment.getFilename()\n                }\n              }), s({\n                tagName: \"span\",\n                className: t.attachmentSize,\n                textContent: this.attachment.getFormattedFilesize()\n              })]\n            })\n          })), i(\"click\", {\n            onElement: n,\n            withCallback: this.didClickToolbar\n          }), i(\"click\", {\n            onElement: n,\n            matchingSelector: \"[data-trix-action]\",\n            withCallback: this.didClickActionButton\n          }), {\n            \"do\": function (t) {\n              return function () {\n                return t.element.appendChild(n);\n              };\n            }(this),\n            undo: function () {\n              return function () {\n                return e.removeNode(n);\n              };\n            }(this)\n          };\n        }), h.prototype.installCaptionEditor = p(function () {\n          var o, a, u, c, l;\n          return c = s({\n            tagName: \"textarea\",\n            className: t.attachmentCaptionEditor,\n            attributes: {\n              placeholder: r.captionPlaceholder\n            },\n            data: {\n              trixMutable: !0\n            }\n          }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function o() {\n            return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n          }, i(\"input\", {\n            onElement: c,\n            withCallback: o\n          }), i(\"input\", {\n            onElement: c,\n            withCallback: this.didInputCaption\n          }), i(\"keydown\", {\n            onElement: c,\n            withCallback: this.didKeyDownCaption\n          }), i(\"change\", {\n            onElement: c,\n            withCallback: this.didChangeCaption\n          }), i(\"blur\", {\n            onElement: c,\n            withCallback: this.didBlurCaption\n          }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n            \"do\": function (e) {\n              return function () {\n                return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n                  return c.focus();\n                }) : void 0;\n              };\n            }(this),\n            undo: function undo() {\n              return e.removeNode(a), u.style.display = null;\n            }\n          };\n        }), h.prototype.didClickToolbar = function (t) {\n          return t.preventDefault(), t.stopPropagation();\n        }, h.prototype.didClickActionButton = function (t) {\n          var e, n;\n\n          switch (e = t.target.getAttribute(\"data-trix-action\")) {\n            case \"remove\":\n              return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n          }\n        }, h.prototype.didKeyDownCaption = function (t) {\n          var e;\n          return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n        }, h.prototype.didInputCaption = function (t) {\n          return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n        }, h.prototype.didChangeCaption = function () {\n          return this.savePendingCaption();\n        }, h.prototype.didBlurCaption = function () {\n          return this.savePendingCaption();\n        }, h;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o = function o(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          r.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          r = {}.hasOwnProperty;\n\n      i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n        function s() {\n          s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n        }\n\n        var a;\n        return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n          return [];\n        }, s.prototype.createNodes = function () {\n          var e, n, o, r, s, u, c;\n          if (e = r = i({\n            tagName: \"figure\",\n            className: this.getClassName(),\n            data: this.getData(),\n            editable: !1\n          }), (n = this.getHref()) && (r = i({\n            tagName: \"a\",\n            editable: !1,\n            attributes: {\n              href: n,\n              tabindex: -1\n            }\n          }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) {\n            u = c[o], r.appendChild(u);\n          }\n          return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n            tagName: \"progress\",\n            attributes: {\n              \"class\": t.attachmentProgress,\n              value: this.attachment.getUploadProgress(),\n              max: 100\n            },\n            data: {\n              trixMutable: !0,\n              trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n            }\n          }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n        }, s.prototype.createCaptionElement = function () {\n          var e, n, o, r, s, a, u;\n          return o = i({\n            tagName: \"figcaption\",\n            className: t.attachmentCaption\n          }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n            tagName: \"span\",\n            className: t.attachmentName,\n            textContent: r\n          }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n            tagName: \"span\",\n            className: t.attachmentSize,\n            textContent: a\n          }), o.appendChild(u))), o;\n        }, s.prototype.getClassName = function () {\n          var e, n;\n          return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n        }, s.prototype.getData = function () {\n          var t, e;\n          return e = {\n            trixAttachment: JSON.stringify(this.attachment),\n            trixContentType: this.attachment.getContentType(),\n            trixId: this.attachment.id\n          }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n        }, s.prototype.getHref = function () {\n          return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n        }, s.prototype.getCaptionConfig = function () {\n          var t, n, i;\n          return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n        }, s.prototype.findProgressElement = function () {\n          var t;\n          return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n        }, a = function a(t) {\n          return i({\n            tagName: \"span\",\n            textContent: e.ZERO_WIDTH_SPACE,\n            data: {\n              trixCursorTarget: t,\n              trixSerialize: !1\n            }\n          });\n        }, s.prototype.attachmentDidChangeUploadProgress = function () {\n          var t, e;\n          return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n        }, s;\n      }(e.ObjectView), n = function n(t, e) {\n        var n;\n        return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n      };\n    }.call(this), function () {\n      var t,\n          n = function n(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var o in e) {\n          i.call(e, o) && (t[o] = e[o]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          i = {}.hasOwnProperty;\n\n      t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n        function o() {\n          o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n        }\n\n        return n(o, i), o.prototype.createContentNodes = function () {\n          return this.image = t({\n            tagName: \"img\",\n            attributes: {\n              src: \"\"\n            },\n            data: {\n              trixMutable: !0\n            }\n          }), this.refresh(this.image), [this.image];\n        }, o.prototype.createCaptionElement = function () {\n          var t;\n          return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n        }, o.prototype.refresh = function (t) {\n          var e;\n          return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n        }, o.prototype.updateAttributesForImage = function (t) {\n          var e, n, i, o, r, s;\n          return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n            src: r\n          }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n        }, o.prototype.attachmentDidChangeAttributes = function () {\n          return this.refresh(this.image), this.refresh();\n        }, o;\n      }(e.AttachmentView);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o = function o(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          r.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          r = {}.hasOwnProperty;\n\n      i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n        function s() {\n          var t;\n          s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n        }\n\n        var a;\n        return o(s, r), s.prototype.createNodes = function () {\n          var e, n, i, o, r, s;\n\n          if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n            for (i = t(e), n = 0, o = s.length; o > n; n++) {\n              r = s[n], i.appendChild(r);\n            }\n\n            s = [e];\n          }\n\n          return s;\n        }, s.prototype.createAttachmentNodes = function () {\n          var t, n;\n          return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n            piece: this.piece\n          }), n.getNodes();\n        }, s.prototype.createStringNodes = function () {\n          var t, e, n, o, r, s, a, u, c, l;\n          if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n          for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n            l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n          }\n\n          return a;\n        }, s.prototype.createElement = function () {\n          var t, e, o, r, s, a, u, c, l;\n          c = {}, a = this.attributes;\n\n          for (r in a) {\n            if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n              u = t.style;\n\n              for (r in u) {\n                l = u[r], c[r] = l;\n              }\n            }\n          }\n\n          if (Object.keys(c).length) {\n            null == e && (e = i(\"span\"));\n\n            for (r in c) {\n              l = c[r], e.style[r] = l;\n            }\n          }\n\n          return e;\n        }, s.prototype.createContainerElement = function () {\n          var t, e, o, r, s;\n          r = this.attributes;\n\n          for (o in r) {\n            if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n          }\n        }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n          return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n        }, s;\n      }(e.ObjectView);\n    }.call(this), function () {\n      var t = function t(_t11, e) {\n        function i() {\n          this.constructor = _t11;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t11[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n      },\n          n = {}.hasOwnProperty;\n\n      e.TextView = function (n) {\n        function i() {\n          i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n        }\n\n        var o;\n        return t(i, n), i.prototype.createNodes = function () {\n          var t, n, i, r, s, a, u, c, l, h;\n\n          for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\n            u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n              textConfig: this.textConfig,\n              context: t\n            }), a.push.apply(a, h.getNodes()), l = u;\n          }\n\n          return a;\n        }, i.prototype.getPieces = function () {\n          var t, e, n, i, o;\n\n          for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n            n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n          }\n\n          return o;\n        }, o = function o(t) {\n          return /\\s$/.test(null != t ? t.toString() : void 0);\n        }, i;\n      }(e.ObjectView);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o = function o(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          r.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          r = {}.hasOwnProperty;\n\n      i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n        function s() {\n          s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n        }\n\n        return o(s, r), s.prototype.createNodes = function () {\n          var t, o, r, s, a, u, c, l, h, p, d;\n          if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n            textConfig: p\n          }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n          for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n            dir: \"rtl\"\n          }), r = i({\n            tagName: h,\n            attributes: t\n          }), s = 0, a = c.length; a > s; s++) {\n            u = c[s], r.appendChild(u);\n          }\n\n          return [r];\n        }, s.prototype.createContainerElement = function (e) {\n          var o, r, s, a, u;\n          return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n            dir: \"rtl\"\n          }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n            tagName: u,\n            className: s,\n            attributes: r\n          });\n        }, s.prototype.shouldAddExtraNewlineElement = function () {\n          return /\\n\\n$/.test(this.block.toString());\n        }, s;\n      }(e.ObjectView);\n    }.call(this), function () {\n      var t,\n          n,\n          i = function i(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          o.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          o = {}.hasOwnProperty;\n\n      t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n        function r() {\n          r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n        }\n\n        var s, a, u;\n        return i(r, o), r.render = function (t) {\n          var e, i;\n          return e = n(\"div\"), i = new this(t, {\n            element: e\n          }), i.render(), i.sync(), e;\n        }, r.prototype.setDocument = function (t) {\n          return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n        }, r.prototype.render = function () {\n          var t, i, o, r, s, a, u;\n\n          if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n            for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n              asTree: !0\n            }), a = [], t = 0, i = s.length; i > t; t++) {\n              r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n                var t, e, n, i;\n\n                for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n                  o = n[t], i.push(this.shadowElement.appendChild(o));\n                }\n\n                return i;\n              }.call(this));\n            }\n\n            return a;\n          }\n        }, r.prototype.isSynced = function () {\n          return s(this.shadowElement, this.element);\n        }, r.prototype.sync = function () {\n          var t;\n\n          for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n            this.element.removeChild(this.element.lastChild);\n          }\n\n          return this.element.appendChild(t), this.didSync();\n        }, r.prototype.didSync = function () {\n          return this.elementStore.reset(a(this.element)), t(function (t) {\n            return function () {\n              return t.garbageCollectCachedViews();\n            };\n          }(this));\n        }, r.prototype.createDocumentFragmentForSync = function () {\n          var t, e, n, i, o, r, s, u, c, l;\n\n          for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n            s = u[n], e.appendChild(s.cloneNode(!0));\n          }\n\n          for (c = a(e), i = 0, r = c.length; r > i; i++) {\n            t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n          }\n\n          return e;\n        }, a = function a(t) {\n          return t.querySelectorAll(\"[data-trix-store-key]\");\n        }, s = function s(t, e) {\n          return u(t.innerHTML) === u(e.innerHTML);\n        }, u = function u(t) {\n          return t.replace(/&nbsp;/g, \" \");\n        }, r;\n      }(e.ObjectView);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s = function s(t, e) {\n        return function () {\n          return t.apply(e, arguments);\n        };\n      },\n          a = function a(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          u.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          u = {}.hasOwnProperty;\n\n      i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n        function c(n, i) {\n          this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n            element: this.element\n          }), o(\"focus\", {\n            onElement: this.element,\n            withCallback: this.didFocus\n          }), o(\"blur\", {\n            onElement: this.element,\n            withCallback: this.didBlur\n          }), o(\"click\", {\n            onElement: this.element,\n            matchingSelector: \"a[contenteditable=false]\",\n            preventDefault: !0\n          }), o(\"mousedown\", {\n            onElement: this.element,\n            matchingSelector: t,\n            withCallback: this.didClickAttachment\n          }), o(\"click\", {\n            onElement: this.element,\n            matchingSelector: \"a\" + t,\n            preventDefault: !0\n          });\n        }\n\n        return a(c, u), c.prototype.didFocus = function () {\n          var t, e, n;\n          return t = function (t) {\n            return function () {\n              var e;\n              return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n            };\n          }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n        }, c.prototype.didBlur = function () {\n          return this.blurPromise = new Promise(function (t) {\n            return function (e) {\n              return n(function () {\n                var n;\n                return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n              });\n            };\n          }(this));\n        }, c.prototype.didClickAttachment = function (t, e) {\n          var n, o, r;\n          return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n            matchingSelector: \"figcaption\"\n          }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n            editCaption: o\n          }) : void 0;\n        }, c.prototype.getSerializableElement = function () {\n          return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n        }, c.prototype.render = function () {\n          var t, e, n;\n          return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n        }, c.prototype.rerenderViewForObject = function (t) {\n          return this.invalidateViewForObject(t), this.render();\n        }, c.prototype.invalidateViewForObject = function (t) {\n          return this.documentView.invalidateViewForObject(t);\n        }, c.prototype.isViewCachingEnabled = function () {\n          return this.documentView.isViewCachingEnabled();\n        }, c.prototype.enableViewCaching = function () {\n          return this.documentView.enableViewCaching();\n        }, c.prototype.disableViewCaching = function () {\n          return this.documentView.disableViewCaching();\n        }, c.prototype.refreshViewCache = function () {\n          return this.documentView.garbageCollectCachedViews();\n        }, c.prototype.isEditingAttachment = function () {\n          return null != this.attachmentEditor;\n        }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n          var i, o, r;\n          if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n        }, c.prototype.uninstallAttachmentEditor = function () {\n          var t;\n          return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n        }, c.prototype.didUninstallAttachmentEditor = function () {\n          return this.attachmentEditor = null, this.render();\n        }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n          var n;\n          return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n        }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n          var n;\n          return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n        }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n          var e;\n          return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n        }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n          var e;\n          return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n        }, c.prototype.canSyncDocumentView = function () {\n          return !this.isEditingAttachment();\n        }, c.prototype.findAttachmentForElement = function (t) {\n          return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n        }, c;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o = function o(t, e) {\n        return function () {\n          return t.apply(e, arguments);\n        };\n      },\n          r = function r(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          s.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          s = {}.hasOwnProperty;\n\n      n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n        function s(t) {\n          this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n            onElement: this.element,\n            matchingSelector: a,\n            withCallback: this.didClickActionButton\n          }), n(\"mousedown\", {\n            onElement: this.element,\n            matchingSelector: c,\n            withCallback: this.didClickAttributeButton\n          }), n(\"click\", {\n            onElement: this.element,\n            matchingSelector: v,\n            preventDefault: !0\n          }), n(\"click\", {\n            onElement: this.element,\n            matchingSelector: l,\n            withCallback: this.didClickDialogButton\n          }), n(\"keydown\", {\n            onElement: this.element,\n            matchingSelector: h,\n            withCallback: this.didKeyDownDialogInput\n          });\n        }\n\n        var a, u, c, l, h, p, d, f, g, m, v;\n        return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n          var n, i, o;\n          return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n        }, s.prototype.didClickAttributeButton = function (t, e) {\n          var n, i, o;\n          return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n        }, s.prototype.didClickDialogButton = function (e, n) {\n          var i, o;\n          return i = t(n, {\n            matchingSelector: p\n          }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n        }, s.prototype.didKeyDownDialogInput = function (t, e) {\n          var n, i;\n          return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n        }, s.prototype.updateActions = function (t) {\n          return this.actions = t, this.refreshActionButtons();\n        }, s.prototype.refreshActionButtons = function () {\n          return this.eachActionButton(function (t) {\n            return function (e, n) {\n              return e.disabled = t.actions[n] === !1;\n            };\n          }(this));\n        }, s.prototype.eachActionButton = function (t) {\n          var e, n, i, o, r;\n\n          for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n            e = o[n], r.push(t(e, d(e)));\n          }\n\n          return r;\n        }, s.prototype.updateAttributes = function (t) {\n          return this.attributes = t, this.refreshAttributeButtons();\n        }, s.prototype.refreshAttributeButtons = function () {\n          return this.eachAttributeButton(function (t) {\n            return function (e, n) {\n              return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n            };\n          }(this));\n        }, s.prototype.eachAttributeButton = function (t) {\n          var e, n, i, o, r;\n\n          for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n            e = o[n], r.push(t(e, f(e)));\n          }\n\n          return r;\n        }, s.prototype.applyKeyboardCommand = function (t) {\n          var e, n, o, r, s, a, u;\n\n          for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n            if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n              onElement: e\n            }), !0;\n          }\n\n          return !1;\n        }, s.prototype.dialogIsVisible = function (t) {\n          var e;\n          return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n        }, s.prototype.toggleDialog = function (t) {\n          return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n        }, s.prototype.showDialog = function (t) {\n          var e, n, i, o, r, s, a, u, c, l;\n\n          for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) {\n            n = u[o], n.removeAttribute(\"disabled\");\n          }\n\n          return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n        }, s.prototype.setAttribute = function (t) {\n          var e, n, i;\n          return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n        }, s.prototype.removeAttribute = function (t) {\n          var e, n;\n          return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n        }, s.prototype.hideDialog = function () {\n          var t, e;\n          return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n        }, s.prototype.resetDialogInputs = function () {\n          var t, e, n, i, o;\n\n          for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n            e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n          }\n\n          return o;\n        }, s.prototype.getDialog = function (t) {\n          return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n        }, m = function m(t, e) {\n          return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n        }, d = function d(t) {\n          return t.getAttribute(\"data-trix-action\");\n        }, f = function f(t) {\n          var e;\n          return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n        }, g = function g(t) {\n          return t.getAttribute(\"data-trix-dialog\");\n        }, s;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t = function t(_t12, e) {\n        function i() {\n          this.constructor = _t12;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t12[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n      },\n          n = {}.hasOwnProperty;\n\n      e.ImagePreloadOperation = function (e) {\n        function n(t) {\n          this.url = t;\n        }\n\n        return t(n, e), n.prototype.perform = function (t) {\n          var e;\n          return e = new Image(), e.onload = function (n) {\n            return function () {\n              return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n            };\n          }(this), e.onerror = function () {\n            return t(!1);\n          }, e.src = this.url;\n        }, n;\n      }(e.Operation);\n    }.call(this), function () {\n      var t = function t(_t13, e) {\n        return function () {\n          return _t13.apply(e, arguments);\n        };\n      },\n          n = function n(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var o in e) {\n          i.call(e, o) && (t[o] = e[o]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          i = {}.hasOwnProperty;\n\n      e.Attachment = function (i) {\n        function o(n) {\n          null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n        }\n\n        return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n          var e, n;\n          return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n        }, o.attributesForFile = function (t) {\n          return new e.Hash({\n            filename: t.name,\n            filesize: t.size,\n            contentType: t.type\n          });\n        }, o.fromJSON = function (t) {\n          return new this(t);\n        }, o.prototype.getAttribute = function (t) {\n          return this.attributes.get(t);\n        }, o.prototype.hasAttribute = function (t) {\n          return this.attributes.has(t);\n        }, o.prototype.getAttributes = function () {\n          return this.attributes.toObject();\n        }, o.prototype.setAttributes = function (t) {\n          var e, n, i;\n          return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n        }, o.prototype.didChangeAttributes = function () {\n          return this.isPreviewable() ? this.preloadURL() : void 0;\n        }, o.prototype.isPending = function () {\n          return null != this.file && !(this.getURL() || this.getHref());\n        }, o.prototype.isPreviewable = function () {\n          return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n        }, o.prototype.getType = function () {\n          return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n        }, o.prototype.getURL = function () {\n          return this.attributes.get(\"url\");\n        }, o.prototype.getHref = function () {\n          return this.attributes.get(\"href\");\n        }, o.prototype.getFilename = function () {\n          var t;\n          return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n        }, o.prototype.getFilesize = function () {\n          return this.attributes.get(\"filesize\");\n        }, o.prototype.getFormattedFilesize = function () {\n          var t;\n          return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n        }, o.prototype.getExtension = function () {\n          var t;\n          return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n        }, o.prototype.getContentType = function () {\n          return this.attributes.get(\"contentType\");\n        }, o.prototype.hasContent = function () {\n          return this.attributes.has(\"content\");\n        }, o.prototype.getContent = function () {\n          return this.attributes.get(\"content\");\n        }, o.prototype.getWidth = function () {\n          return this.attributes.get(\"width\");\n        }, o.prototype.getHeight = function () {\n          return this.attributes.get(\"height\");\n        }, o.prototype.getFile = function () {\n          return this.file;\n        }, o.prototype.setFile = function (t) {\n          return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n        }, o.prototype.releaseFile = function () {\n          return this.releasePreloadedFile(), this.file = null;\n        }, o.prototype.getUploadProgress = function () {\n          var t;\n          return null != (t = this.uploadProgress) ? t : 0;\n        }, o.prototype.setUploadProgress = function (t) {\n          var e;\n          return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n        }, o.prototype.toJSON = function () {\n          return this.getAttributes();\n        }, o.prototype.getCacheKey = function () {\n          return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n        }, o.prototype.getPreviewURL = function () {\n          return this.previewURL || this.preloadingURL;\n        }, o.prototype.setPreviewURL = function (t) {\n          var e, n;\n          return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n        }, o.prototype.preloadURL = function () {\n          return this.preload(this.getURL(), this.releaseFile);\n        }, o.prototype.preloadFile = function () {\n          return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n        }, o.prototype.releasePreloadedFile = function () {\n          return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n        }, o.prototype.preload = function (t, n) {\n          var i;\n          return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n            return function (i) {\n              var o, r;\n              return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n                width: r,\n                height: o\n              }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n            };\n          }(this))[\"catch\"](function (t) {\n            return function () {\n              return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n            };\n          }(this))) : void 0;\n        }, o;\n      }(e.Object);\n    }.call(this), function () {\n      var t = function t(_t14, e) {\n        function i() {\n          this.constructor = _t14;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t14[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n      },\n          n = {}.hasOwnProperty;\n\n      e.Piece = function (n) {\n        function i(t, n) {\n          null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n        }\n\n        return t(i, n), i.types = {}, i.registerType = function (t, e) {\n          return e.type = t, this.types[t] = e;\n        }, i.fromJSON = function (t) {\n          var e;\n          return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n        }, i.prototype.copyWithAttributes = function (t) {\n          return new this.constructor(this.getValue(), t);\n        }, i.prototype.copyWithAdditionalAttributes = function (t) {\n          return this.copyWithAttributes(this.attributes.merge(t));\n        }, i.prototype.copyWithoutAttribute = function (t) {\n          return this.copyWithAttributes(this.attributes.remove(t));\n        }, i.prototype.copy = function () {\n          return this.copyWithAttributes(this.attributes);\n        }, i.prototype.getAttribute = function (t) {\n          return this.attributes.get(t);\n        }, i.prototype.getAttributesHash = function () {\n          return this.attributes;\n        }, i.prototype.getAttributes = function () {\n          return this.attributes.toObject();\n        }, i.prototype.getCommonAttributes = function () {\n          var t, e, n;\n          return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n            return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n          }), t.toObject()) : {};\n        }, i.prototype.hasAttribute = function (t) {\n          return this.attributes.has(t);\n        }, i.prototype.hasSameStringValueAsPiece = function (t) {\n          return null != t && this.toString() === t.toString();\n        }, i.prototype.hasSameAttributesAsPiece = function (t) {\n          return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n        }, i.prototype.isBlockBreak = function () {\n          return !1;\n        }, i.prototype.isEqualTo = function (t) {\n          return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n        }, i.prototype.isEmpty = function () {\n          return 0 === this.length;\n        }, i.prototype.isSerializable = function () {\n          return !0;\n        }, i.prototype.toJSON = function () {\n          return {\n            type: this.constructor.type,\n            attributes: this.getAttributes()\n          };\n        }, i.prototype.contentsForInspection = function () {\n          return {\n            type: this.constructor.type,\n            attributes: this.attributes.inspect()\n          };\n        }, i.prototype.canBeGrouped = function () {\n          return this.hasAttribute(\"href\");\n        }, i.prototype.canBeGroupedWith = function (t) {\n          return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n        }, i.prototype.getLength = function () {\n          return this.length;\n        }, i.prototype.canBeConsolidatedWith = function () {\n          return !1;\n        }, i;\n      }(e.Object);\n    }.call(this), function () {\n      var t = function t(_t15, e) {\n        function i() {\n          this.constructor = _t15;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t15[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n      },\n          n = {}.hasOwnProperty;\n\n      e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n        function i(t) {\n          this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n        }\n\n        return t(i, n), i.fromJSON = function (t) {\n          return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n        }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n          return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n        }, i.prototype.removeProhibitedAttributes = function () {\n          var t;\n          return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n        }, i.prototype.getValue = function () {\n          return this.attachment;\n        }, i.prototype.isSerializable = function () {\n          return !this.attachment.isPending();\n        }, i.prototype.getCaption = function () {\n          var t;\n          return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n        }, i.prototype.isEqualTo = function (t) {\n          var e;\n          return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n        }, i.prototype.toString = function () {\n          return e.OBJECT_REPLACEMENT_CHARACTER;\n        }, i.prototype.toJSON = function () {\n          var t;\n          return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n        }, i.prototype.getCacheKey = function () {\n          return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n        }, i.prototype.toConsole = function () {\n          return JSON.stringify(this.toString());\n        }, i;\n      }(e.Piece));\n    }.call(this), function () {\n      var t,\n          n = function n(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var o in e) {\n          i.call(e, o) && (t[o] = e[o]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          i = {}.hasOwnProperty;\n\n      t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n        function i(e) {\n          i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n        }\n\n        return n(i, e), i.fromJSON = function (t) {\n          return new this(t.string, t.attributes);\n        }, i.prototype.getValue = function () {\n          return this.string;\n        }, i.prototype.toString = function () {\n          return this.string.toString();\n        }, i.prototype.isBlockBreak = function () {\n          return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n        }, i.prototype.toJSON = function () {\n          var t;\n          return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n        }, i.prototype.canBeConsolidatedWith = function (t) {\n          return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n        }, i.prototype.consolidateWith = function (t) {\n          return new this.constructor(this.toString() + t.toString(), this.attributes);\n        }, i.prototype.splitAtOffset = function (t) {\n          var e, n;\n          return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n        }, i.prototype.toConsole = function () {\n          var t;\n          return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n        }, i;\n      }(e.Piece));\n    }.call(this), function () {\n      var t,\n          n = function n(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var o in e) {\n          i.call(e, o) && (t[o] = e[o]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          i = {}.hasOwnProperty,\n          o = [].slice;\n\n      t = e.spliceArray, e.SplittableList = function (e) {\n        function i(t) {\n          null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n        }\n\n        var r, s, a;\n        return n(i, e), i.box = function (t) {\n          return t instanceof this ? t : new this(t);\n        }, i.prototype.indexOf = function (t) {\n          return this.objects.indexOf(t);\n        }, i.prototype.splice = function () {\n          var e;\n          return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n        }, i.prototype.eachObject = function (t) {\n          var e, n, i, o, r, s;\n\n          for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n            o = r[n], s.push(t(o, n));\n          }\n\n          return s;\n        }, i.prototype.insertObjectAtIndex = function (t, e) {\n          return this.splice(e, 0, t);\n        }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n          return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n        }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n          var n, i, o;\n          return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n        }, i.prototype.editObjectAtIndex = function (t, e) {\n          return this.replaceObjectAtIndex(e(this.objects[t]), t);\n        }, i.prototype.replaceObjectAtIndex = function (t, e) {\n          return this.splice(e, 1, t);\n        }, i.prototype.removeObjectAtIndex = function (t) {\n          return this.splice(t, 1);\n        }, i.prototype.getObjectAtIndex = function (t) {\n          return this.objects[t];\n        }, i.prototype.getSplittableListInRange = function (t) {\n          var e, n, i, o;\n          return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n        }, i.prototype.selectSplittableList = function (t) {\n          var e, n;\n          return n = function () {\n            var n, i, o, r;\n\n            for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n              e = o[n], t(e) && r.push(e);\n            }\n\n            return r;\n          }.call(this), new this.constructor(n);\n        }, i.prototype.removeObjectsInRange = function (t) {\n          var e, n, i, o;\n          return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n        }, i.prototype.transformObjectsInRange = function (t, e) {\n          var n, i, o, r, s, a, u;\n          return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n            var t, s, u;\n\n            for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n              o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n            }\n\n            return u;\n          }(), new this.constructor(u);\n        }, i.prototype.splitObjectsAtRange = function (t) {\n          var e, n, i, o, s, u;\n          return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n        }, i.prototype.getObjectAtPosition = function (t) {\n          var e, n, i;\n          return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n        }, i.prototype.splitObjectAtPosition = function (t) {\n          var e, n, i, o, r, s, a, u, c, l;\n          return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n        }, i.prototype.consolidate = function () {\n          var t, e, n, i, o, r;\n\n          for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n            n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n          }\n\n          return null != o && i.push(o), new this.constructor(i);\n        }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n          var n, i, r;\n          return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n        }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n          var e, n, i, o, r, s, a;\n\n          for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n            if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n              index: i,\n              offset: t - e\n            };\n            e = r;\n          }\n\n          return {\n            index: null,\n            offset: null\n          };\n        }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n          var n, i, o, r, s, a;\n\n          for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n            if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n              s += e;\n              break;\n            }\n          }\n\n          return s;\n        }, i.prototype.getEndPosition = function () {\n          var t, e;\n          return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n            var n, i, o;\n\n            for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n              t = o[n], e += t.getLength();\n            }\n\n            return e;\n          }.call(this);\n        }, i.prototype.toString = function () {\n          return this.objects.join(\"\");\n        }, i.prototype.toArray = function () {\n          return this.objects.slice(0);\n        }, i.prototype.toJSON = function () {\n          return this.toArray();\n        }, i.prototype.isEqualTo = function (t) {\n          return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n        }, s = function s(t, e) {\n          var n, i, o, r, s;\n          if (null == e && (e = []), t.length !== e.length) return !1;\n\n          for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n            r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n          }\n\n          return s;\n        }, i.prototype.contentsForInspection = function () {\n          var t;\n          return {\n            objects: \"[\" + function () {\n              var e, n, i, o;\n\n              for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n                t = i[e], o.push(t.inspect());\n              }\n\n              return o;\n            }.call(this).join(\", \") + \"]\"\n          };\n        }, a = function a(t) {\n          return t[0];\n        }, r = function r(t) {\n          return t[1];\n        }, i;\n      }(e.Object);\n    }.call(this), function () {\n      var t = function t(_t16, e) {\n        function i() {\n          this.constructor = _t16;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t16[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n      },\n          n = {}.hasOwnProperty;\n\n      e.Text = function (n) {\n        function i(t) {\n          var n;\n          null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n            var e, i, o;\n\n            for (o = [], e = 0, i = t.length; i > e; e++) {\n              n = t[e], n.isEmpty() || o.push(n);\n            }\n\n            return o;\n          }());\n        }\n\n        return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n          var i;\n          return i = new e.AttachmentPiece(t, n), new this([i]);\n        }, i.textForStringWithAttributes = function (t, n) {\n          var i;\n          return i = new e.StringPiece(t, n), new this([i]);\n        }, i.fromJSON = function (t) {\n          var n, i;\n          return i = function () {\n            var i, o, r;\n\n            for (r = [], i = 0, o = t.length; o > i; i++) {\n              n = t[i], r.push(e.Piece.fromJSON(n));\n            }\n\n            return r;\n          }(), new this(i);\n        }, i.prototype.copy = function () {\n          return this.copyWithPieceList(this.pieceList);\n        }, i.prototype.copyWithPieceList = function (t) {\n          return new this.constructor(t.consolidate().toArray());\n        }, i.prototype.copyUsingObjectMap = function (t) {\n          var e, n;\n          return n = function () {\n            var n, i, o, r, s;\n\n            for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n              e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n            }\n\n            return s;\n          }.call(this), new this.constructor(n);\n        }, i.prototype.appendText = function (t) {\n          return this.insertTextAtPosition(t, this.getLength());\n        }, i.prototype.insertTextAtPosition = function (t, e) {\n          return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n        }, i.prototype.removeTextAtRange = function (t) {\n          return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n        }, i.prototype.replaceTextAtRange = function (t, e) {\n          return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n        }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n          var n, i;\n          if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n        }, i.prototype.addAttributeAtRange = function (t, e, n) {\n          var i;\n          return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n        }, i.prototype.addAttributesAtRange = function (t, e) {\n          return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n            return e.copyWithAdditionalAttributes(t);\n          }));\n        }, i.prototype.removeAttributeAtRange = function (t, e) {\n          return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n            return e.copyWithoutAttribute(t);\n          }));\n        }, i.prototype.setAttributesAtRange = function (t, e) {\n          return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n            return e.copyWithAttributes(t);\n          }));\n        }, i.prototype.getAttributesAtPosition = function (t) {\n          var e, n;\n          return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n        }, i.prototype.getCommonAttributes = function () {\n          var t, n;\n          return t = function () {\n            var t, e, i, o;\n\n            for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n              n = i[t], o.push(n.getAttributes());\n            }\n\n            return o;\n          }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n        }, i.prototype.getCommonAttributesAtRange = function (t) {\n          var e;\n          return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n        }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n          var n, i, o;\n\n          for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n            n--;\n          }\n\n          for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n            o++;\n          }\n\n          return [n, o];\n        }, i.prototype.getTextAtRange = function (t) {\n          return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n        }, i.prototype.getStringAtRange = function (t) {\n          return this.pieceList.getSplittableListInRange(t).toString();\n        }, i.prototype.getStringAtPosition = function (t) {\n          return this.getStringAtRange([t, t + 1]);\n        }, i.prototype.startsWithString = function (t) {\n          return this.getStringAtRange([0, t.length]) === t;\n        }, i.prototype.endsWithString = function (t) {\n          var e;\n          return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n        }, i.prototype.getAttachmentPieces = function () {\n          var t, e, n, i, o;\n\n          for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n            n = i[t], null != n.attachment && o.push(n);\n          }\n\n          return o;\n        }, i.prototype.getAttachments = function () {\n          var t, e, n, i, o;\n\n          for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n            n = i[t], o.push(n.attachment);\n          }\n\n          return o;\n        }, i.prototype.getAttachmentAndPositionById = function (t) {\n          var e, n, i, o, r, s;\n\n          for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n            if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n              attachment: i.attachment,\n              position: o\n            };\n            o += i.length;\n          }\n\n          return {\n            attachment: null,\n            position: null\n          };\n        }, i.prototype.getAttachmentById = function (t) {\n          var e, n, i;\n          return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n        }, i.prototype.getRangeOfAttachment = function (t) {\n          var e, n;\n          return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n        }, i.prototype.updateAttributesForAttachment = function (t, e) {\n          var n;\n          return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n        }, i.prototype.getLength = function () {\n          return this.pieceList.getEndPosition();\n        }, i.prototype.isEmpty = function () {\n          return 0 === this.getLength();\n        }, i.prototype.isEqualTo = function (t) {\n          var e;\n          return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n        }, i.prototype.isBlockBreak = function () {\n          return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n        }, i.prototype.eachPiece = function (t) {\n          return this.pieceList.eachObject(t);\n        }, i.prototype.getPieces = function () {\n          return this.pieceList.toArray();\n        }, i.prototype.getPieceAtPosition = function (t) {\n          return this.pieceList.getObjectAtPosition(t);\n        }, i.prototype.contentsForInspection = function () {\n          return {\n            pieceList: this.pieceList.inspect()\n          };\n        }, i.prototype.toSerializableText = function () {\n          var t;\n          return t = this.pieceList.selectSplittableList(function (t) {\n            return t.isSerializable();\n          }), this.copyWithPieceList(t);\n        }, i.prototype.toString = function () {\n          return this.pieceList.toString();\n        }, i.prototype.toJSON = function () {\n          return this.pieceList.toJSON();\n        }, i.prototype.toConsole = function () {\n          var t;\n          return JSON.stringify(function () {\n            var e, n, i, o;\n\n            for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n              t = i[e], o.push(JSON.parse(t.toConsole()));\n            }\n\n            return o;\n          }.call(this));\n        }, i.prototype.getDirection = function () {\n          return e.getDirection(this.toString());\n        }, i.prototype.isRTL = function () {\n          return \"rtl\" === this.getDirection();\n        }, i;\n      }(e.Object);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s = function s(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          a.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          a = {}.hasOwnProperty,\n          u = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      },\n          c = [].slice;\n\n      t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n        function a(t, n) {\n          null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n        }\n\n        var l, h, p, d, f, g, m, v, y;\n        return s(a, n), a.fromJSON = function (t) {\n          var n;\n          return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n        }, a.prototype.isEmpty = function () {\n          return this.text.isBlockBreak();\n        }, a.prototype.isEqualTo = function (e) {\n          return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n        }, a.prototype.copyWithText = function (t) {\n          return new this.constructor(t, this.attributes);\n        }, a.prototype.copyWithoutText = function () {\n          return this.copyWithText(null);\n        }, a.prototype.copyWithAttributes = function (t) {\n          return new this.constructor(this.text, t);\n        }, a.prototype.copyWithoutAttributes = function () {\n          return this.copyWithAttributes(null);\n        }, a.prototype.copyUsingObjectMap = function (t) {\n          var e;\n          return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n        }, a.prototype.addAttribute = function (t) {\n          var e;\n          return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n        }, a.prototype.removeAttribute = function (t) {\n          var e, n;\n          return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n        }, a.prototype.removeLastAttribute = function () {\n          return this.removeAttribute(this.getLastAttribute());\n        }, a.prototype.getLastAttribute = function () {\n          return f(this.attributes);\n        }, a.prototype.getAttributes = function () {\n          return this.attributes.slice(0);\n        }, a.prototype.getAttributeLevel = function () {\n          return this.attributes.length;\n        }, a.prototype.getAttributeAtLevel = function (t) {\n          return this.attributes[t - 1];\n        }, a.prototype.hasAttribute = function (t) {\n          return u.call(this.attributes, t) >= 0;\n        }, a.prototype.hasAttributes = function () {\n          return this.getAttributeLevel() > 0;\n        }, a.prototype.getLastNestableAttribute = function () {\n          return f(this.getNestableAttributes());\n        }, a.prototype.getNestableAttributes = function () {\n          var t, e, n, o, r;\n\n          for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n            t = o[e], i(t).nestable && r.push(t);\n          }\n\n          return r;\n        }, a.prototype.getNestingLevel = function () {\n          return this.getNestableAttributes().length;\n        }, a.prototype.decreaseNestingLevel = function () {\n          var t;\n          return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n        }, a.prototype.increaseNestingLevel = function () {\n          var t, e, n;\n          return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n        }, a.prototype.getListItemAttributes = function () {\n          var t, e, n, o, r;\n\n          for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n            t = o[e], i(t).listAttribute && r.push(t);\n          }\n\n          return r;\n        }, a.prototype.isListItem = function () {\n          var t;\n          return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n        }, a.prototype.isTerminalBlock = function () {\n          var t;\n          return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n        }, a.prototype.breaksOnReturn = function () {\n          var t;\n          return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n        }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n          var n, i;\n          return i = this.toString(), n = function () {\n            switch (t) {\n              case \"forward\":\n                return i.indexOf(\"\\n\", e);\n\n              case \"backward\":\n                return i.slice(0, e).lastIndexOf(\"\\n\");\n            }\n          }(), -1 !== n ? n : void 0;\n        }, a.prototype.contentsForInspection = function () {\n          return {\n            text: this.text.inspect(),\n            attributes: this.attributes\n          };\n        }, a.prototype.toString = function () {\n          return this.text.toString();\n        }, a.prototype.toJSON = function () {\n          return {\n            text: this.text,\n            attributes: this.attributes\n          };\n        }, a.prototype.getDirection = function () {\n          return this.text.getDirection();\n        }, a.prototype.isRTL = function () {\n          return this.text.isRTL();\n        }, a.prototype.getLength = function () {\n          return this.text.getLength();\n        }, a.prototype.canBeConsolidatedWith = function (t) {\n          return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n        }, a.prototype.consolidateWith = function (t) {\n          var n, i;\n          return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n        }, a.prototype.splitAtOffset = function (t) {\n          var e, n;\n          return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n        }, a.prototype.getBlockBreakPosition = function () {\n          return this.text.getLength() - 1;\n        }, a.prototype.getTextWithoutBlockBreak = function () {\n          return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n        }, a.prototype.canBeGrouped = function (t) {\n          return this.attributes[t];\n        }, a.prototype.canBeGroupedWith = function (t, e) {\n          var n, r, s, a;\n          return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n        }, h = function h(t) {\n          return t = y(t), t = l(t);\n        }, y = function y(t) {\n          var n, i, o, r, s, a;\n          return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n            var t, e, n;\n\n            for (n = [], t = 0, e = i.length; e > t; t++) {\n              s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n            }\n\n            return n;\n          }(), r ? new e.Text(c.call(i).concat([o])) : t);\n        }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n          blockBreak: !0\n        }), l = function l(t) {\n          return m(t) ? t : t.appendText(p);\n        }, m = function m(t) {\n          var e, n;\n          return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n        }, v = function v(t) {\n          return t.copyWithoutAttribute(\"blockBreak\");\n        }, d = function d(t) {\n          var e;\n          return e = i(t).listAttribute, null != e ? [e, t] : [t];\n        }, f = function f(t) {\n          return t.slice(-1)[0];\n        }, g = function g(t, e) {\n          var n;\n          return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n        }, a;\n      }(e.Object);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o = function o(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          r.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          r = {}.hasOwnProperty,\n          s = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      },\n          a = [].slice;\n\n      n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n        function u(t, e) {\n          var n;\n          n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n        }\n\n        var c, l, h, p;\n        return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n          var n;\n          return n = new this(t, e), n.sanitize(), n;\n        }, u.prototype.sanitize = function () {\n          return this.sanitizeElements(), this.normalizeListElementNesting();\n        }, u.prototype.getHTML = function () {\n          return this.body.innerHTML;\n        }, u.prototype.getBody = function () {\n          return this.body;\n        }, u.prototype.sanitizeElements = function () {\n          var t, n, o, r, s;\n\n          for (s = i(this.body), r = []; s.nextNode();) {\n            switch (o = s.currentNode, o.nodeType) {\n              case Node.ELEMENT_NODE:\n                this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n                break;\n\n              case Node.COMMENT_NODE:\n                r.push(o);\n            }\n          }\n\n          for (t = 0, n = r.length; n > t; t++) {\n            o = r[t], e.removeNode(o);\n          }\n\n          return this.body;\n        }, u.prototype.sanitizeElement = function (t) {\n          var e, n, i, o, r;\n\n          for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) {\n            i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n          }\n\n          return t;\n        }, u.prototype.normalizeListElementNesting = function () {\n          var t, e, i, o, r;\n\n          for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n            i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n          }\n\n          return this.body;\n        }, u.prototype.elementIsRemovable = function (t) {\n          return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n        }, u.prototype.elementIsForbidden = function (t) {\n          var e;\n          return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n        }, u.prototype.elementIsntSerializable = function (e) {\n          return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n        }, p = function p(t) {\n          var e, n, i, o, r;\n\n          for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"</html>\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n            n = r[i], e.body.appendChild(n);\n          }\n\n          return e.body;\n        }, u;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s,\n          a,\n          u,\n          c,\n          l,\n          h,\n          p = function p(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          d.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          d = {}.hasOwnProperty,\n          f = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n        function g(t, e) {\n          this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n        }\n\n        var m, v, y, b, A, C, x, w, E, S, R, k;\n        return p(g, d), g.parse = function (t, e) {\n          var n;\n          return n = new this(t, e), n.parse(), n;\n        }, g.prototype.getDocument = function () {\n          return e.Document.fromJSON(this.blocks);\n        }, g.prototype.parse = function () {\n          var t, n;\n\n          try {\n            for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n              usingFilter: x\n            }); n.nextNode();) {\n              this.processNode(n.currentNode);\n            }\n\n            return this.translateBlockElementMarginsToNewlines();\n          } finally {\n            this.removeHiddenContainer();\n          }\n        }, g.prototype.createHiddenContainer = function () {\n          return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n            tagName: \"div\",\n            style: {\n              display: \"none\"\n            }\n          }), document.body.appendChild(this.containerElement));\n        }, g.prototype.removeHiddenContainer = function () {\n          return e.removeNode(this.containerElement);\n        }, x = function x(t) {\n          return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n        }, g.prototype.processNode = function (t) {\n          switch (t.nodeType) {\n            case Node.TEXT_NODE:\n              if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n              break;\n\n            case Node.ELEMENT_NODE:\n              return this.appendBlockForElement(t), this.processElement(t);\n          }\n        }, g.prototype.appendBlockForTextNode = function (e) {\n          var n, i, o;\n          return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n        }, g.prototype.appendBlockForElement = function (e) {\n          var n, o, r, s;\n\n          if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n            if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n          } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n        }, g.prototype.findParentBlockElement = function (t) {\n          var e;\n\n          for (e = t.parentElement; e && e !== this.containerElement;) {\n            if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n            e = e.parentElement;\n          }\n\n          return null;\n        }, g.prototype.processTextNode = function (t) {\n          var e, n;\n          return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n        }, g.prototype.processElement = function (t) {\n          var e, n, i, o, r;\n          if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n          switch (l(t)) {\n            case \"br\":\n              return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n            case \"img\":\n              e = {\n                url: t.getAttribute(\"src\"),\n                contentType: \"image\"\n              }, i = b(t);\n\n              for (n in i) {\n                r = i[n], e[n] = r;\n              }\n\n              return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n            case \"tr\":\n              if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n              break;\n\n            case \"td\":\n              if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n          }\n        }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n          var n;\n          return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n        }, g.prototype.appendEmptyBlock = function () {\n          return this.appendBlockForAttributesWithElement([], null);\n        }, g.prototype.appendStringWithAttributes = function (t, e) {\n          return this.appendPiece(S(t, e));\n        }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n          return this.appendPiece(E(t, e));\n        }, g.prototype.appendPiece = function (t) {\n          return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n        }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n          var n, i;\n          return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n        }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n          var n, i;\n          return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n        }, S = function S(t, e) {\n          var n;\n          return null == e && (e = {}), n = \"string\", t = u(t), {\n            string: t,\n            attributes: e,\n            type: n\n          };\n        }, E = function E(t, e) {\n          var n;\n          return null == e && (e = {}), n = \"attachment\", {\n            attachment: t,\n            attributes: e,\n            type: n\n          };\n        }, m = function m(t) {\n          var e;\n          return null == t && (t = {}), e = [], {\n            text: e,\n            attributes: t\n          };\n        }, g.prototype.getTextAttributes = function (t) {\n          var n, i, r, s, u, c, l, h, p, d, f, g;\n          r = {}, p = e.config.textAttributes;\n\n          for (n in p) {\n            if (u = p[n], u.tagName && o(t, {\n              matchingSelector: u.tagName,\n              untilNode: this.containerElement\n            })) r[n] = !0;else if (u.parser) {\n              if (g = u.parser(t)) {\n                for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) {\n                  if (s = d[c], u.parser(s) === g) {\n                    i = !0;\n                    break;\n                  }\n                }\n\n                i || (r[n] = g);\n              }\n            } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n          }\n\n          if (a(t)) {\n            f = w(t, \"attributes\");\n\n            for (l in f) {\n              g = f[l], r[l] = g;\n            }\n          }\n\n          return r;\n        }, g.prototype.getBlockAttributes = function (t) {\n          var n, i, o, r;\n\n          for (i = []; t && t !== this.containerElement;) {\n            r = e.config.blockAttributes;\n\n            for (n in r) {\n              o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n            }\n\n            t = t.parentNode;\n          }\n\n          return i.reverse();\n        }, g.prototype.findBlockElementAncestors = function (t) {\n          var e, n;\n\n          for (e = []; t && t !== this.containerElement;) {\n            n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n          }\n\n          return e;\n        }, w = function w(t, e) {\n          try {\n            return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n          } catch (n) {\n            return {};\n          }\n        }, b = function b(t) {\n          var e, n, i;\n          return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n        }, g.prototype.isBlockElement = function (t) {\n          var e;\n          if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n            matchingSelector: \"td\",\n            untilNode: this.containerElement\n          })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n        }, g.prototype.isInsignificantTextNode = function (t) {\n          var e, n, i;\n          if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n        }, g.prototype.isExtraBR = function (t) {\n          return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n        }, v = function v(t) {\n          var e;\n          return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n        }, C = function C(t) {\n          return t && !R(t.textContent);\n        }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n          var t, e, n, i, o, r, s, a;\n\n          for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\n            t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n          }\n\n          return a;\n        }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n          var e, n;\n          return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n        }, g.prototype.getMarginOfDefaultBlockElement = function () {\n          var t;\n          return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n        }, y = function y(t) {\n          var e;\n          return e = window.getComputedStyle(t), \"block\" === e.display ? {\n            top: parseInt(e.marginTop),\n            bottom: parseInt(e.marginBottom)\n          } : void 0;\n        }, A = function A(t) {\n          return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n        }, k = function k(t) {\n          return RegExp(\"^\" + n.source + \"*$\").test(t);\n        }, R = function R(t) {\n          return /\\s$/.test(t);\n        }, g;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r = function r(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          s.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          s = {}.hasOwnProperty,\n          a = [].slice,\n          u = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n        function c(t) {\n          null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n        }\n\n        var l;\n        return r(c, s), c.fromJSON = function (t) {\n          var n, i;\n          return i = function () {\n            var i, o, r;\n\n            for (r = [], i = 0, o = t.length; o > i; i++) {\n              n = t[i], r.push(e.Block.fromJSON(n));\n            }\n\n            return r;\n          }(), new this(i);\n        }, c.fromHTML = function (t, n) {\n          return e.HTMLParser.parse(t, n).getDocument();\n        }, c.fromString = function (t, n) {\n          var i;\n          return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n        }, c.prototype.isEmpty = function () {\n          var t;\n          return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n        }, c.prototype.copy = function (t) {\n          var e;\n          return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n        }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n          var n;\n          return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n        }, c.prototype.copyUsingObjectMap = function (t) {\n          var e, n, i;\n          return n = function () {\n            var n, o, r, s;\n\n            for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n              e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n            }\n\n            return s;\n          }.call(this), new this.constructor(n);\n        }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n          var e, n, i;\n          return null == t && (t = []), i = function () {\n            var i, o, r, s;\n\n            for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n              n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n            }\n\n            return s;\n          }.call(this), new this.constructor(i);\n        }, c.prototype.replaceBlock = function (t, e) {\n          var n;\n          return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n        }, c.prototype.insertDocumentAtRange = function (t, e) {\n          var n, r, s, a, u, c, l;\n          return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n        }, c.prototype.mergeDocumentAtRange = function (e, n) {\n          var o, r, s, a, u, c, l, h, p, d, f, g;\n          return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n            consolidateBlocks: !0\n          }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n        }, c.prototype.insertTextAtRange = function (t, e) {\n          var n, o, r, s, a;\n          return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n            return e.copyWithText(e.text.insertTextAtPosition(t, r));\n          }));\n        }, c.prototype.removeTextAtRange = function (t) {\n          var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n          return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n            return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n          }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n        }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n          var n, o, r, s, u, c, l, h, p, d;\n          return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n        }, c.prototype.addAttributeAtRange = function (t, e, i) {\n          var o;\n          return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n            return o = o.editObjectAtIndex(s, function () {\n              return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n            });\n          }), new this.constructor(o);\n        }, c.prototype.addAttribute = function (t, e) {\n          var n;\n          return n = this.blockList, this.eachBlock(function (i, o) {\n            return n = n.editObjectAtIndex(o, function () {\n              return i.addAttribute(t, e);\n            });\n          }), new this.constructor(n);\n        }, c.prototype.removeAttributeAtRange = function (t, e) {\n          var i;\n          return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n            return n(t) ? i = i.editObjectAtIndex(r, function () {\n              return e.removeAttribute(t);\n            }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n              return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n            }) : void 0;\n          }), new this.constructor(i);\n        }, c.prototype.updateAttributesForAttachment = function (t, e) {\n          var n, i, o, r;\n          return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n            return n.copyWithText(r.updateAttributesForAttachment(t, e));\n          }));\n        }, c.prototype.removeAttributeForAttachment = function (t, e) {\n          var n;\n          return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n        }, c.prototype.insertBlockBreakAtRange = function (t) {\n          var n, o, r, s;\n          return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n        }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n          var o, r, s, a;\n          return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n            exceptAttributeName: t\n          }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n        }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n          var i;\n          return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n            var s;\n            if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n              return t.removeAttribute(s);\n            });\n          }), new this.constructor(i);\n        }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n          var e;\n          return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n            var r;\n            if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n              return t.removeAttribute(r);\n            });\n          }), new this.constructor(e);\n        }, c.prototype.removeBlockAttributesAtRange = function (t) {\n          var e;\n          return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n            return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n              return t.copyWithoutAttributes();\n            }) : void 0;\n          }), new this.constructor(e);\n        }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n          var e, n, o, r, s, a, u, c, l;\n          return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n            document: e,\n            range: t\n          };\n        }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n          var e, n, o;\n          return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n            return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n          }), {\n            document: e,\n            range: t\n          };\n        }, c.prototype.consolidateBlocksAtRange = function (t) {\n          var e, n, o, r, s;\n          return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n        }, c.prototype.getDocumentAtRange = function (t) {\n          var e;\n          return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n        }, c.prototype.getStringAtRange = function (t) {\n          var e, n, o;\n          return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n        }, c.prototype.getBlockAtIndex = function (t) {\n          return this.blockList.getObjectAtIndex(t);\n        }, c.prototype.getBlockAtPosition = function (t) {\n          var e;\n          return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n        }, c.prototype.getTextAtIndex = function (t) {\n          var e;\n          return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n        }, c.prototype.getTextAtPosition = function (t) {\n          var e;\n          return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n        }, c.prototype.getPieceAtPosition = function (t) {\n          var e, n, i;\n          return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n        }, c.prototype.getCharacterAtPosition = function (t) {\n          var e, n, i;\n          return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n        }, c.prototype.getLength = function () {\n          return this.blockList.getEndPosition();\n        }, c.prototype.getBlocks = function () {\n          return this.blockList.toArray();\n        }, c.prototype.getBlockCount = function () {\n          return this.blockList.length;\n        }, c.prototype.getEditCount = function () {\n          return this.editCount;\n        }, c.prototype.eachBlock = function (t) {\n          return this.blockList.eachObject(t);\n        }, c.prototype.eachBlockAtRange = function (t, e) {\n          var n, o, r, s, a, u, c, l, h, p, d, f;\n          if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n          for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n            (n = this.getBlockAtIndex(a)) ? (f = function () {\n              switch (a) {\n                case p.index:\n                  return [p.offset, n.text.getLength()];\n\n                case o.index:\n                  return [0, o.offset];\n\n                default:\n                  return [0, n.text.getLength()];\n              }\n            }(), h.push(e(n, f, a))) : h.push(void 0);\n          }\n\n          return h;\n        }, c.prototype.getCommonAttributesAtRange = function (t) {\n          var n, r, s;\n          return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n            return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n          }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n        }, c.prototype.getCommonAttributesAtPosition = function (t) {\n          var n, i, o, r, s, a, c, h, p, d;\n          if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n          r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n            var t, n;\n            t = e.config.textAttributes, n = [];\n\n            for (c in t) {\n              d = t[c], d.inheritable && n.push(c);\n            }\n\n            return n;\n          }();\n\n          for (c in i) {\n            d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n          }\n\n          return r;\n        }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n          var n, o, r, s, a, u, c, l, h;\n          return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n            index: r,\n            offset: l\n          }), n = this.positionFromLocation({\n            index: r,\n            offset: o\n          }), i([c, n]);\n        }, c.prototype.getBaseBlockAttributes = function () {\n          var t, e, n, i, o, r, s;\n\n          for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n            e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n              var n, i, s;\n\n              for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n                s.push(e[o]);\n              }\n\n              return s;\n            }();\n          }\n\n          return t;\n        }, l = function l(t) {\n          var e, n;\n          return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n        }, c.prototype.getAttachmentById = function (t) {\n          var e, n, i, o;\n\n          for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n            if (e = o[n], e.id === t) return e;\n          }\n        }, c.prototype.getAttachmentPieces = function () {\n          var t;\n          return t = [], this.blockList.eachObject(function (e) {\n            var n;\n            return n = e.text, t = t.concat(n.getAttachmentPieces());\n          }), t;\n        }, c.prototype.getAttachments = function () {\n          var t, e, n, i, o;\n\n          for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n            n = i[t], o.push(n.attachment);\n          }\n\n          return o;\n        }, c.prototype.getRangeOfAttachment = function (t) {\n          var e, n, o, r, s, a, u;\n\n          for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n            if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n            r += a.getLength();\n          }\n        }, c.prototype.getLocationRangeOfAttachment = function (t) {\n          var e;\n          return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n        }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n          var e, n, i, o;\n\n          for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n            if (i = o[e], i.attachment === t) return i;\n          }\n        }, c.prototype.findRangesForBlockAttribute = function (t) {\n          var e, n, i, o, r, s, a;\n\n          for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n            e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n          }\n\n          return s;\n        }, c.prototype.findRangesForTextAttribute = function (t, e) {\n          var n, i, o, r, s, a, u, c, l, h;\n\n          for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n            return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n          }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) {\n            s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n          }\n\n          return c;\n        }, c.prototype.locationFromPosition = function (t) {\n          var e, n;\n          return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n            index: e.length - 1,\n            offset: e[e.length - 1].getLength()\n          });\n        }, c.prototype.positionFromLocation = function (t) {\n          return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n        }, c.prototype.locationRangeFromPosition = function (t) {\n          return i(this.locationFromPosition(t));\n        }, c.prototype.locationRangeFromRange = function (t) {\n          var e, n, o, r;\n          if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n        }, c.prototype.rangeFromLocationRange = function (t) {\n          var e, n;\n          return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n        }, c.prototype.isEqualTo = function (t) {\n          return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n        }, c.prototype.getTexts = function () {\n          var t, e, n, i, o;\n\n          for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n            t = i[e], o.push(t.text);\n          }\n\n          return o;\n        }, c.prototype.getPieces = function () {\n          var t, e, n, i, o;\n\n          for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n            o = i[t], n.push.apply(n, o.getPieces());\n          }\n\n          return n;\n        }, c.prototype.getObjects = function () {\n          return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n        }, c.prototype.toSerializableDocument = function () {\n          var t;\n          return t = [], this.blockList.eachObject(function (e) {\n            return t.push(e.copyWithText(e.text.toSerializableText()));\n          }), new this.constructor(t);\n        }, c.prototype.toString = function () {\n          return this.blockList.toString();\n        }, c.prototype.toJSON = function () {\n          return this.blockList.toJSON();\n        }, c.prototype.toConsole = function () {\n          var t;\n          return JSON.stringify(function () {\n            var e, n, i, o;\n\n            for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n              t = i[e], o.push(JSON.parse(t.text.toConsole()));\n            }\n\n            return o;\n          }.call(this));\n        }, c;\n      }(e.Object);\n    }.call(this), function () {\n      e.LineBreakInsertion = function () {\n        function t(t) {\n          var e;\n          this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n        }\n\n        return t.prototype.shouldInsertBlockBreak = function () {\n          return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n        }, t.prototype.shouldBreakFormattedBlock = function () {\n          return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n        }, t.prototype.shouldDecreaseListLevel = function () {\n          return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n        }, t.prototype.shouldPrependListItem = function () {\n          return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n        }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n          return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n        }, t;\n      }();\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s,\n          a,\n          u,\n          c,\n          l,\n          h = function h(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          p.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          p = {}.hasOwnProperty;\n\n      s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n        function d() {\n          this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n        }\n\n        var f;\n        return h(d, p), d.prototype.setDocument = function (t) {\n          var e;\n          return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n        }, d.prototype.getSnapshot = function () {\n          return {\n            document: this.document,\n            selectedRange: this.getSelectedRange()\n          };\n        }, d.prototype.loadSnapshot = function (t) {\n          var n, i, o, r;\n          return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n        }, d.prototype.insertText = function (t, e) {\n          var n, i, o, r;\n          return r = (null != e ? e : {\n            updatePosition: !0\n          }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n        }, d.prototype.insertBlock = function (t) {\n          var n;\n          return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n        }, d.prototype.insertDocument = function (t) {\n          var n, i, o;\n          return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n        }, d.prototype.insertString = function (t, n) {\n          var i, o;\n          return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n        }, d.prototype.insertBlockBreak = function () {\n          var t, e, n;\n          return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n        }, d.prototype.insertLineBreak = function () {\n          var t, n;\n          return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n        }, d.prototype.insertHTML = function (t) {\n          var n, i, o, r;\n          return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n        }, d.prototype.replaceHTML = function (t) {\n          var n, i, o;\n          return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n            strict: !1\n          }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n        }, d.prototype.insertFile = function (t) {\n          return this.insertFiles([t]);\n        }, d.prototype.insertFiles = function (t) {\n          var n, i, o, r, s, a;\n\n          for (i = [], r = 0, s = t.length; s > r; r++) {\n            o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n          }\n\n          return this.insertAttachments(i);\n        }, d.prototype.insertAttachment = function (t) {\n          return this.insertAttachments([t]);\n        }, d.prototype.insertAttachments = function (t) {\n          var n, i, o, r, s, a, u, c, l;\n\n          for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n            n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n          }\n\n          return this.insertText(c);\n        }, d.prototype.shouldManageDeletingInDirection = function (t) {\n          var e;\n\n          if (e = this.getLocationRange(), u(e)) {\n            if (\"backward\" === t && 0 === e[0].offset) return !0;\n            if (this.shouldManageMovingCursorInDirection(t)) return !0;\n          } else if (e[0].index !== e[1].index) return !0;\n\n          return !1;\n        }, d.prototype.deleteInDirection = function (t, e) {\n          var n, i, o, r, s, a, c, l;\n          return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n            length: r\n          }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n        }, d.prototype.moveTextFromRange = function (t) {\n          var e;\n          return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n        }, d.prototype.removeAttachment = function (t) {\n          var e;\n          return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n        }, d.prototype.removeLastBlockAttribute = function () {\n          var t, e, n, i;\n          return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n        }, f = \" \", d.prototype.insertPlaceholder = function () {\n          return this.placeholderPosition = this.getPosition(), this.insertString(f);\n        }, d.prototype.selectPlaceholder = function () {\n          return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n        }, d.prototype.forgetPlaceholder = function () {\n          return this.placeholderPosition = null;\n        }, d.prototype.hasCurrentAttribute = function (t) {\n          var e;\n          return e = this.currentAttributes[t], null != e && e !== !1;\n        }, d.prototype.toggleCurrentAttribute = function (t) {\n          var e;\n          return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n        }, d.prototype.canSetCurrentAttribute = function (t) {\n          return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n        }, d.prototype.canSetCurrentTextAttribute = function () {\n          var t, e, n, i, o;\n\n          if (e = this.getSelectedDocument()) {\n            for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n              if (t = o[n], !t.hasContent()) return !1;\n            }\n\n            return !0;\n          }\n        }, d.prototype.canSetCurrentBlockAttribute = function () {\n          var t;\n          if (t = this.getBlock()) return !t.isTerminalBlock();\n        }, d.prototype.setCurrentAttribute = function (t, e) {\n          return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n        }, d.prototype.setTextAttribute = function (t, n) {\n          var i, o, r, s;\n          if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n            href: n\n          }), this.insertText(s)) : void 0;\n        }, d.prototype.setBlockAttribute = function (t, e) {\n          var n, i;\n          if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n        }, d.prototype.removeCurrentAttribute = function (t) {\n          return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n        }, d.prototype.removeTextAttribute = function (t) {\n          var e;\n          if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n        }, d.prototype.removeBlockAttribute = function (t) {\n          var e;\n          if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n        }, d.prototype.canDecreaseNestingLevel = function () {\n          var t;\n          return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n        }, d.prototype.canIncreaseNestingLevel = function () {\n          var e, n, i;\n          if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n        }, d.prototype.decreaseNestingLevel = function () {\n          var t;\n          if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n        }, d.prototype.increaseNestingLevel = function () {\n          var t;\n          if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n        }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n          var t;\n          return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n        }, d.prototype.decreaseBlockAttributeLevel = function () {\n          var t, e;\n          return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n        }, d.prototype.decreaseListLevel = function () {\n          var t, e, n, i, o, r;\n\n          for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) {\n            n++;\n          }\n\n          return r = this.document.positionFromLocation({\n            index: o,\n            offset: 0\n          }), i = this.document.positionFromLocation({\n            index: n,\n            offset: 0\n          }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n        }, d.prototype.updateCurrentAttributes = function () {\n          var t, e, n, o, r, s;\n\n          if (s = this.getSelectedRange({\n            ignoreLock: !0\n          })) {\n            for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) {\n              t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n            }\n\n            if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n          }\n        }, d.prototype.getCurrentAttributes = function () {\n          return n.call({}, this.currentAttributes);\n        }, d.prototype.getCurrentTextAttributes = function () {\n          var t, e, n, i;\n          t = {}, n = this.currentAttributes;\n\n          for (e in n) {\n            i = n[e], i !== !1 && r(e) && (t[e] = i);\n          }\n\n          return t;\n        }, d.prototype.freezeSelection = function () {\n          return this.setCurrentAttribute(\"frozen\", !0);\n        }, d.prototype.thawSelection = function () {\n          return this.removeCurrentAttribute(\"frozen\");\n        }, d.prototype.hasFrozenSelection = function () {\n          return this.hasCurrentAttribute(\"frozen\");\n        }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n          var e, n;\n          return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n        }, d.prototype.getSelectedRange = function () {\n          var t;\n          return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n        }, d.prototype.setSelectedRange = function (t) {\n          var e;\n          return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n        }, d.prototype.getPosition = function () {\n          var t;\n          return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n        }, d.prototype.getLocationRange = function (t) {\n          var e, n;\n          return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n            index: 0,\n            offset: 0\n          });\n        }, d.prototype.withTargetLocationRange = function (t, e) {\n          var n;\n          this.targetLocationRange = t;\n\n          try {\n            n = e();\n          } finally {\n            this.targetLocationRange = null;\n          }\n\n          return n;\n        }, d.prototype.withTargetRange = function (t, e) {\n          var n;\n          return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n        }, d.prototype.withTargetDOMRange = function (t, e) {\n          var n;\n          return n = this.createLocationRangeFromDOMRange(t, {\n            strict: !1\n          }), this.withTargetLocationRange(n, e);\n        }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n          var n, i, o, r;\n          return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n        }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n          var e;\n          return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n        }, d.prototype.moveCursorInDirection = function (t) {\n          var e, n, i, o;\n          return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n        }, d.prototype.expandSelectionInDirection = function (t, e) {\n          var n, i;\n          return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n            length: n\n          }), this.setSelectedRange(i);\n        }, d.prototype.expandSelectionForEditing = function () {\n          return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n        }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n          var e, n;\n          return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n        }, d.prototype.selectionContainsAttachments = function () {\n          var t;\n          return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n        }, d.prototype.selectionIsInCursorTarget = function () {\n          return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n        }, d.prototype.positionIsCursorTarget = function (t) {\n          var e;\n          return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n        }, d.prototype.positionIsBlockBreak = function (t) {\n          var e;\n          return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n        }, d.prototype.getSelectedDocument = function () {\n          var t;\n          return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n        }, d.prototype.getSelectedAttachments = function () {\n          var t;\n          return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n        }, d.prototype.getAttachments = function () {\n          return this.attachments.slice(0);\n        }, d.prototype.refreshAttachments = function () {\n          var t, e, n, i, o, r, s, a, u, c, h, p;\n\n          for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) {\n            e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n          }\n\n          for (p = [], o = 0, s = t.length; s > o; o++) {\n            e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n          }\n\n          return p;\n        }, d.prototype.attachmentDidChangeAttributes = function (t) {\n          var e;\n          return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n        }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n          var e;\n          return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n        }, d.prototype.editAttachment = function (t, e) {\n          var n;\n          if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n        }, d.prototype.stopEditingAttachment = function () {\n          var t;\n          if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n        }, d.prototype.updateAttributesForAttachment = function (t, e) {\n          return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n        }, d.prototype.removeAttributeForAttachment = function (t, e) {\n          return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n        }, d.prototype.breakFormattedBlock = function (t) {\n          var n, i, o, r, s;\n          return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n        }, d.prototype.getPreviousBlock = function () {\n          var t, e;\n          return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n        }, d.prototype.getBlock = function () {\n          var t;\n          return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n        }, d.prototype.getAttachmentAtRange = function (t) {\n          var n;\n          return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n        }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n          var t;\n          return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n        }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n          var e;\n          return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n        }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n          var n, i;\n          return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n        }, d;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t = function t(_t17, e) {\n        function i() {\n          this.constructor = _t17;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t17[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n      },\n          n = {}.hasOwnProperty;\n\n      e.UndoManager = function (e) {\n        function n(t) {\n          this.composition = t, this.undoEntries = [], this.redoEntries = [];\n        }\n\n        var i;\n        return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n          var n, o, r, s, a;\n          return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n            description: t,\n            context: o\n          }), this.undoEntries.push(a), this.redoEntries = []);\n        }, n.prototype.undo = function () {\n          var t, e;\n          return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n        }, n.prototype.redo = function () {\n          var t, e;\n          return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n        }, n.prototype.canUndo = function () {\n          return this.undoEntries.length > 0;\n        }, n.prototype.canRedo = function () {\n          return this.redoEntries.length > 0;\n        }, n.prototype.createEntry = function (t) {\n          var e, n, i;\n          return i = null != t ? t : {}, n = i.description, e = i.context, {\n            description: null != n ? n.toString() : void 0,\n            context: JSON.stringify(e),\n            snapshot: this.composition.getSnapshot()\n          };\n        }, i = function i(t, e, n) {\n          return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n        }, n;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t;\n      e.attachmentGalleryFilter = function (e) {\n        var n;\n        return n = new t(e), n.perform(), n.getSnapshot();\n      }, t = function () {\n        function t(t) {\n          this.document = t.document, this.selectedRange = t.selectedRange;\n        }\n\n        var e, n, i;\n        return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n          return this.removeBlockAttribute(), this.applyBlockAttribute();\n        }, t.prototype.getSnapshot = function () {\n          return {\n            document: this.document,\n            selectedRange: this.selectedRange\n          };\n        }, t.prototype.removeBlockAttribute = function () {\n          var t, n, i, o, r;\n\n          for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n            i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n          }\n\n          return r;\n        }, t.prototype.applyBlockAttribute = function () {\n          var t, n, i, o, r, s;\n\n          for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n            o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n          }\n\n          return s;\n        }, t.prototype.findRangesOfBlocks = function () {\n          return this.document.findRangesForBlockAttribute(e);\n        }, t.prototype.findRangesOfPieces = function () {\n          return this.document.findRangesForTextAttribute(n, {\n            withValue: i\n          });\n        }, t.prototype.moveSelectedRangeForward = function () {\n          return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n        }, t;\n      }();\n    }.call(this), function () {\n      var t = function t(_t18, e) {\n        return function () {\n          return _t18.apply(e, arguments);\n        };\n      };\n\n      e.Editor = function () {\n        function n(n, o, r) {\n          this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n        }\n\n        var i;\n        return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n          return this.loadSnapshot({\n            document: t,\n            selectedRange: [0, 0]\n          });\n        }, n.prototype.loadHTML = function (t) {\n          return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n            referenceElement: this.element\n          }));\n        }, n.prototype.loadJSON = function (t) {\n          var n, i;\n          return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n            document: n,\n            selectedRange: i\n          });\n        }, n.prototype.loadSnapshot = function (t) {\n          return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n        }, n.prototype.getDocument = function () {\n          return this.composition.document;\n        }, n.prototype.getSelectedDocument = function () {\n          return this.composition.getSelectedDocument();\n        }, n.prototype.getSnapshot = function () {\n          return this.composition.getSnapshot();\n        }, n.prototype.toJSON = function () {\n          return this.getSnapshot();\n        }, n.prototype.deleteInDirection = function (t) {\n          return this.composition.deleteInDirection(t);\n        }, n.prototype.insertAttachment = function (t) {\n          return this.composition.insertAttachment(t);\n        }, n.prototype.insertAttachments = function (t) {\n          return this.composition.insertAttachments(t);\n        }, n.prototype.insertDocument = function (t) {\n          return this.composition.insertDocument(t);\n        }, n.prototype.insertFile = function (t) {\n          return this.composition.insertFile(t);\n        }, n.prototype.insertFiles = function (t) {\n          return this.composition.insertFiles(t);\n        }, n.prototype.insertHTML = function (t) {\n          return this.composition.insertHTML(t);\n        }, n.prototype.insertString = function (t) {\n          return this.composition.insertString(t);\n        }, n.prototype.insertText = function (t) {\n          return this.composition.insertText(t);\n        }, n.prototype.insertLineBreak = function () {\n          return this.composition.insertLineBreak();\n        }, n.prototype.getSelectedRange = function () {\n          return this.composition.getSelectedRange();\n        }, n.prototype.getPosition = function () {\n          return this.composition.getPosition();\n        }, n.prototype.getClientRectAtPosition = function (t) {\n          var e;\n          return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n        }, n.prototype.expandSelectionInDirection = function (t) {\n          return this.composition.expandSelectionInDirection(t);\n        }, n.prototype.moveCursorInDirection = function (t) {\n          return this.composition.moveCursorInDirection(t);\n        }, n.prototype.setSelectedRange = function (t) {\n          return this.composition.setSelectedRange(t);\n        }, n.prototype.activateAttribute = function (t, e) {\n          return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n        }, n.prototype.attributeIsActive = function (t) {\n          return this.composition.hasCurrentAttribute(t);\n        }, n.prototype.canActivateAttribute = function (t) {\n          return this.composition.canSetCurrentAttribute(t);\n        }, n.prototype.deactivateAttribute = function (t) {\n          return this.composition.removeCurrentAttribute(t);\n        }, n.prototype.canDecreaseNestingLevel = function () {\n          return this.composition.canDecreaseNestingLevel();\n        }, n.prototype.canIncreaseNestingLevel = function () {\n          return this.composition.canIncreaseNestingLevel();\n        }, n.prototype.decreaseNestingLevel = function () {\n          return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n        }, n.prototype.increaseNestingLevel = function () {\n          return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n        }, n.prototype.canRedo = function () {\n          return this.undoManager.canRedo();\n        }, n.prototype.canUndo = function () {\n          return this.undoManager.canUndo();\n        }, n.prototype.recordUndoEntry = function (t, e) {\n          var n, i, o;\n          return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n            context: i,\n            consolidatable: n\n          });\n        }, n.prototype.redo = function () {\n          return this.canRedo() ? this.undoManager.redo() : void 0;\n        }, n.prototype.undo = function () {\n          return this.canUndo() ? this.undoManager.undo() : void 0;\n        }, n;\n      }();\n    }.call(this), function () {\n      var t = function t(_t19, e) {\n        function i() {\n          this.constructor = _t19;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t19[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n      },\n          n = {}.hasOwnProperty;\n\n      e.ManagedAttachment = function (e) {\n        function n(t, e) {\n          var n;\n          this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n        }\n\n        return t(n, e), n.prototype.remove = function () {\n          return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n        }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t = function t(_t20, e) {\n        function i() {\n          this.constructor = _t20;\n        }\n\n        for (var o in e) {\n          n.call(e, o) && (_t20[o] = e[o]);\n        }\n\n        return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n      },\n          n = {}.hasOwnProperty;\n\n      e.AttachmentManager = function (n) {\n        function i(t) {\n          var e, n, i;\n\n          for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n            e = t[n], this.manageAttachment(e);\n          }\n        }\n\n        return t(i, n), i.prototype.getAttachments = function () {\n          var t, e, n, i;\n          n = this.managedAttachments, i = [];\n\n          for (e in n) {\n            t = n[e], i.push(t);\n          }\n\n          return i;\n        }, i.prototype.manageAttachment = function (t) {\n          var n, i;\n          return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n        }, i.prototype.attachmentIsManaged = function (t) {\n          return t.id in this.managedAttachments;\n        }, i.prototype.requestRemovalOfAttachment = function (t) {\n          var e;\n          return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n        }, i.prototype.unmanageAttachment = function (t) {\n          var e;\n          return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n        }, i;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t, n, i, o, r, s, a, u, c, l, h;\n      t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n        function e(t) {\n          this.element = t;\n        }\n\n        var p, d, f, g;\n        return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n          var s, u, l, p, g, m, v;\n\n          for (m = (null != o ? o : {\n            strict: !0\n          }).strict, u = 0, l = !1, p = {\n            index: 0,\n            offset: 0\n          }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n            usingFilter: f\n          }); v.nextNode();) {\n            if (g = v.currentNode, g === e && c(e)) {\n              a(g) || (p.offset += i);\n              break;\n            }\n\n            if (g.parentNode === e) {\n              if (u++ === i) break;\n            } else if (!t(e, g) && u > 0) break;\n\n            r(g, {\n              strict: m\n            }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n          }\n\n          return p;\n        }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n          var e, i, s, u, l;\n\n          if (0 === t.index && 0 === t.offset) {\n            for (e = this.element, u = 0; e.firstChild;) {\n              if (e = e.firstChild, o(e)) {\n                u = 1;\n                break;\n              }\n            }\n\n            return [e, u];\n          }\n\n          if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n            if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n              name: \"right\"\n            }) && u++) : (e = i, u = t.offset - s);else {\n              if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e));) {\n                ;\n              }\n              u = n(i), 0 !== t.offset && u++;\n            }\n            return [e, u];\n          }\n        }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n          var e, n, i, o, r, s, u, l;\n\n          for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n            if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n              if (r = e, s = u, t.offset === s && a(r)) break;\n            } else r || (r = e, s = u);\n            if (u += o, u > t.offset) break;\n          }\n\n          return [r, s];\n        }, e.prototype.findAttachmentElementParentForNode = function (t) {\n          for (; t && t !== this.element;) {\n            if (i(t)) return t;\n            t = t.parentNode;\n          }\n        }, e.prototype.getSignificantNodesForIndex = function (t) {\n          var e, n, i, o, r;\n\n          for (i = [], r = h(this.element, {\n            usingFilter: p\n          }), o = !1; r.nextNode();) {\n            if (n = r.currentNode, s(n)) {\n              if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n            } else o && i.push(n);\n          }\n\n          return i;\n        }, d = function d(t) {\n          var e;\n          return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n        }, p = function p(t) {\n          return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n        }, g = function g(t) {\n          return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n        }, f = function f(t) {\n          return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n        }, e;\n      }();\n    }.call(this), function () {\n      var t,\n          n,\n          i = [].slice;\n      t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n        function e() {}\n\n        return e.prototype.createDOMRangeFromPoint = function (e) {\n          var i, o, r, s, a, u, c, l;\n          if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n          if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n          if (document.body.createTextRange) {\n            s = t();\n\n            try {\n              u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n            } catch (h) {}\n\n            return i = t(), n(s), i;\n          }\n        }, e.prototype.getClientRectsForDOMRange = function (t) {\n          var e, n, o;\n          return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n        }, e;\n      }();\n    }.call(this), function () {\n      var t,\n          n = function n(t, e) {\n        return function () {\n          return t.apply(e, arguments);\n        };\n      },\n          i = function i(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          o.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          o = {}.hasOwnProperty,\n          r = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n        function o() {\n          this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n        }\n\n        var s;\n        return i(o, e), o.prototype.start = function () {\n          return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n        }, o.prototype.stop = function () {\n          return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n        }, o.prototype.registerSelectionManager = function (t) {\n          return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n        }, o.prototype.unregisterSelectionManager = function (t) {\n          var e;\n          return this.selectionManagers = function () {\n            var n, i, o, r;\n\n            for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n              e = o[n], e !== t && r.push(e);\n            }\n\n            return r;\n          }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n        }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n          var t, e, n, i, o;\n\n          for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n            o = n[t], i.push(o.selectionDidChange());\n          }\n\n          return i;\n        }, o.prototype.update = function () {\n          var e;\n          return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n        }, o.prototype.reset = function () {\n          return this.domRange = null, this.update();\n        }, o.prototype.run = function () {\n          return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n        }, s = function s(t, e) {\n          return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n        }, o;\n      }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s,\n          a,\n          u,\n          c,\n          l,\n          h = function h(t, e) {\n        return function () {\n          return t.apply(e, arguments);\n        };\n      },\n          p = function p(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          d.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          d = {}.hasOwnProperty;\n\n      i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n        function f(t) {\n          this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n            onElement: this.element,\n            withCallback: this.didMouseDown\n          });\n        }\n\n        return p(f, d), f.prototype.getLocationRange = function (t) {\n          var e, i;\n          return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n            strict: !1\n          }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n        }, f.prototype.setLocationRange = function (t) {\n          var e;\n          if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n        }, f.prototype.setLocationRangeFromPointRange = function (t) {\n          var e, n;\n          return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n        }, f.prototype.getClientRectAtLocationRange = function (t) {\n          var e;\n          return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n        }, f.prototype.locationIsCursorTarget = function (t) {\n          var e, n, i;\n          return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n        }, f.prototype.lock = function () {\n          return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n        }, f.prototype.unlock = function () {\n          var t;\n          return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n        }, f.prototype.clearSelection = function () {\n          var t;\n          return null != (t = i()) ? t.removeAllRanges() : void 0;\n        }, f.prototype.selectionIsCollapsed = function () {\n          var t;\n          return (null != (t = n()) ? t.collapsed : void 0) === !0;\n        }, f.prototype.selectionIsExpanded = function () {\n          return !this.selectionIsCollapsed();\n        }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n          var n, i;\n          if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n        }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n          return this.pauseTemporarily();\n        }, f.prototype.pauseTemporarily = function () {\n          var e, n, i, r;\n          return this.paused = !0, n = function (e) {\n            return function () {\n              var n, o, s;\n\n              for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n                n = i[o], n.destroy();\n              }\n\n              return t(document, e.element) ? e.selectionDidChange() : void 0;\n            };\n          }(this), r = setTimeout(n, 200), i = function () {\n            var t, i, r, s;\n\n            for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n              e = r[t], s.push(o(e, {\n                onElement: document,\n                withCallback: n\n              }));\n            }\n\n            return s;\n          }();\n        }, f.prototype.selectionDidChange = function () {\n          return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n        }, f.prototype.updateCurrentLocationRange = function (t) {\n          var e;\n          return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n        }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n          var e, n, i, o;\n          return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n        }, f.prototype.getLocationAtPoint = function (t) {\n          var e, n;\n          return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n        }, f.prototype.domRangeWithinElement = function (e) {\n          return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n        }, f;\n      }(e.BasicObject);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r = function r(t, e) {\n        function n() {\n          this.constructor = t;\n        }\n\n        for (var i in e) {\n          s.call(e, i) && (t[i] = e[i]);\n        }\n\n        return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n      },\n          s = {}.hasOwnProperty,\n          a = [].slice;\n\n      i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n        function u(t) {\n          var n, i;\n          this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n        }\n\n        var c;\n        return r(u, s), u.prototype.registerSelectionManager = function () {\n          return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n        }, u.prototype.unregisterSelectionManager = function () {\n          return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n        }, u.prototype.render = function () {\n          return this.compositionController.render();\n        }, u.prototype.reparse = function () {\n          return this.composition.replaceHTML(this.editorElement.innerHTML);\n        }, u.prototype.compositionDidChangeDocument = function () {\n          return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n        }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n          return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n            attributes: this.currentAttributes\n          });\n        }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n          return this.pasting ? this.pastedRange = t : void 0;\n        }, u.prototype.compositionShouldAcceptFile = function (t) {\n          return this.notifyEditorElement(\"file-accept\", {\n            file: t\n          });\n        }, u.prototype.compositionDidAddAttachment = function (t) {\n          var e;\n          return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n            attachment: e\n          });\n        }, u.prototype.compositionDidEditAttachment = function (t) {\n          var e;\n          return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n            attachment: e\n          }), this.notifyEditorElement(\"change\");\n        }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n          return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n        }, u.prototype.compositionDidRemoveAttachment = function (t) {\n          var e;\n          return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n            attachment: e\n          });\n        }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n          return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n        }, u.prototype.compositionDidStopEditingAttachment = function () {\n          return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n        }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n          return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n        }, u.prototype.compositionWillLoadSnapshot = function () {\n          return this.loadingSnapshot = !0;\n        }, u.prototype.compositionDidLoadSnapshot = function () {\n          return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n        }, u.prototype.getSelectionManager = function () {\n          return this.selectionManager;\n        }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n          return this.removeAttachment(t);\n        }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n          return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n        }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n          return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n        }, u.prototype.compositionControllerDidRender = function () {\n          return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n        }, u.prototype.compositionControllerDidFocus = function () {\n          return this.isFocusedInvisibly() && this.setLocationRange({\n            index: 0,\n            offset: 0\n          }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n        }, u.prototype.compositionControllerDidBlur = function () {\n          return this.notifyEditorElement(\"blur\");\n        }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n          return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n        }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n          var e, n;\n          return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n        }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n          return this.editor.recordUndoEntry(\"Edit Attachment\", {\n            context: t.id,\n            consolidatable: !0\n          });\n        }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n          return this.removeAttachment(t);\n        }, u.prototype.inputControllerWillHandleInput = function () {\n          return this.handlingInput = !0, this.requestedRender = !1;\n        }, u.prototype.inputControllerDidRequestRender = function () {\n          return this.requestedRender = !0;\n        }, u.prototype.inputControllerDidHandleInput = function () {\n          return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n        }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n          return this.notifyEditorElement(\"change\");\n        }, u.prototype.inputControllerDidRequestReparse = function () {\n          return this.reparse();\n        }, u.prototype.inputControllerWillPerformTyping = function () {\n          return this.recordTypingUndoEntry();\n        }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n          return this.recordFormattingUndoEntry(t);\n        }, u.prototype.inputControllerWillCutText = function () {\n          return this.editor.recordUndoEntry(\"Cut\");\n        }, u.prototype.inputControllerWillPaste = function (t) {\n          return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n            paste: t\n          });\n        }, u.prototype.inputControllerDidPaste = function (t) {\n          return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n            paste: t\n          });\n        }, u.prototype.inputControllerWillMoveText = function () {\n          return this.editor.recordUndoEntry(\"Move\");\n        }, u.prototype.inputControllerWillAttachFiles = function () {\n          return this.editor.recordUndoEntry(\"Drop Files\");\n        }, u.prototype.inputControllerWillPerformUndo = function () {\n          return this.editor.undo();\n        }, u.prototype.inputControllerWillPerformRedo = function () {\n          return this.editor.redo();\n        }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n          return this.toolbarController.applyKeyboardCommand(t);\n        }, u.prototype.inputControllerDidStartDrag = function () {\n          return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n        }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n          return this.selectionManager.setLocationRangeFromPointRange(t);\n        }, u.prototype.inputControllerDidCancelDrag = function () {\n          return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n        }, u.prototype.locationRangeDidChange = function (t) {\n          return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n        }, u.prototype.toolbarDidClickButton = function () {\n          return this.getLocationRange() ? void 0 : this.setLocationRange({\n            index: 0,\n            offset: 0\n          });\n        }, u.prototype.toolbarDidInvokeAction = function (t) {\n          return this.invokeAction(t);\n        }, u.prototype.toolbarDidToggleAttribute = function (t) {\n          return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n        }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n          return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n        }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n          return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n        }, u.prototype.toolbarWillShowDialog = function () {\n          return this.composition.expandSelectionForEditing(), this.freezeSelection();\n        }, u.prototype.toolbarDidShowDialog = function (t) {\n          return this.notifyEditorElement(\"toolbar-dialog-show\", {\n            dialogName: t\n          });\n        }, u.prototype.toolbarDidHideDialog = function (t) {\n          return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n            dialogName: t\n          });\n        }, u.prototype.freezeSelection = function () {\n          return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n        }, u.prototype.thawSelection = function () {\n          return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n        }, u.prototype.actions = {\n          undo: {\n            test: function test() {\n              return this.editor.canUndo();\n            },\n            perform: function perform() {\n              return this.editor.undo();\n            }\n          },\n          redo: {\n            test: function test() {\n              return this.editor.canRedo();\n            },\n            perform: function perform() {\n              return this.editor.redo();\n            }\n          },\n          link: {\n            test: function test() {\n              return this.editor.canActivateAttribute(\"href\");\n            }\n          },\n          increaseNestingLevel: {\n            test: function test() {\n              return this.editor.canIncreaseNestingLevel();\n            },\n            perform: function perform() {\n              return this.editor.increaseNestingLevel() && this.render();\n            }\n          },\n          decreaseNestingLevel: {\n            test: function test() {\n              return this.editor.canDecreaseNestingLevel();\n            },\n            perform: function perform() {\n              return this.editor.decreaseNestingLevel() && this.render();\n            }\n          },\n          attachFiles: {\n            test: function test() {\n              return !0;\n            },\n            perform: function perform() {\n              return e.config.input.pickFiles(this.editor.insertFiles);\n            }\n          }\n        }, u.prototype.canInvokeAction = function (t) {\n          var e, n;\n          return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n        }, u.prototype.invokeAction = function (t) {\n          var e, n;\n          return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n            actionName: t\n          }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n        }, u.prototype.actionIsExternal = function (t) {\n          return /^x-./.test(t);\n        }, u.prototype.getCurrentActions = function () {\n          var t, e;\n          e = {};\n\n          for (t in this.actions) {\n            e[t] = this.canInvokeAction(t);\n          }\n\n          return e;\n        }, u.prototype.updateCurrentActions = function () {\n          var t;\n          return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n            actions: this.currentActions\n          }));\n        }, u.prototype.runEditorFilters = function () {\n          var t, e, n, i, o, r, s, a;\n\n          for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) {\n            e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n          }\n\n          return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n        }, c = function c(t, e) {\n          return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n        }, u.prototype.updateInputElement = function () {\n          var t, n;\n          return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n        }, u.prototype.notifyEditorElement = function (t, e) {\n          switch (t) {\n            case \"document-change\":\n              this.documentChangedSinceLastRender = !0;\n              break;\n\n            case \"render\":\n              this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n              break;\n\n            case \"change\":\n            case \"attachment-add\":\n            case \"attachment-edit\":\n            case \"attachment-remove\":\n              this.updateInputElement();\n          }\n\n          return this.editorElement.notify(t, e);\n        }, u.prototype.removeAttachment = function (t) {\n          return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n        }, u.prototype.recordFormattingUndoEntry = function (e) {\n          var n, o;\n          return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n            context: this.getUndoContext(),\n            consolidatable: !0\n          }) : void 0;\n        }, u.prototype.recordTypingUndoEntry = function () {\n          return this.editor.recordUndoEntry(\"Typing\", {\n            context: this.getUndoContext(this.currentAttributes),\n            consolidatable: !0\n          });\n        }, u.prototype.getUndoContext = function () {\n          var t;\n          return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n        }, u.prototype.getLocationContext = function () {\n          var t;\n          return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n        }, u.prototype.getTimeContext = function () {\n          return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n        }, u.prototype.isFocused = function () {\n          var t;\n          return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n        }, u.prototype.isFocusedInvisibly = function () {\n          return this.isFocused() && !this.getLocationRange();\n        }, u;\n      }(e.Controller);\n    }.call(this), function () {\n      var t,\n          n,\n          i,\n          o,\n          r,\n          s,\n          a,\n          u = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      };\n\n      n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n        var c, l, h, p, d, f, g, m, v;\n        return g = 0, l = function l(t) {\n          return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n        }, m = function m(t) {\n          return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n            onElement: t,\n            withCallback: function withCallback() {\n              return h(t);\n            }\n          }));\n        }, h = function h(t) {\n          return d(t), v(t);\n        }, d = function d(t) {\n          return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n            onElement: t,\n            preventDefault: !0\n          })) : void 0;\n        }, v = function v() {\n          var t;\n          return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n        }, c = function c(t) {\n          return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n        }, f = function f(t) {\n          var e;\n          if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n            var e, n, i;\n            return i = function () {\n              var n, i, o, r;\n\n              for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n                e = o[n], e.contains(t) || r.push(e.textContent);\n              }\n\n              return r;\n            }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n          })(), o(\"focus\", {\n            onElement: t,\n            withCallback: e\n          });\n        }, p = function () {\n          return n.forcesObjectResizing ? {\n            display: \"inline\",\n            width: \"auto\"\n          } : {\n            display: \"inline-block\",\n            width: \"1px\"\n          };\n        }(), {\n          defaultCSS: \"%t {\\n  display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n  content: attr(placeholder);\\n  color: graytext;\\n  cursor: text;\\n  pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n  cursor: text;\\n}\\n\\n%t img {\\n  max-width: 100%;\\n  height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n  resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n  position: absolute;\\n  left: -9999px;\\n  max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n  content: attr(data-trix-placeholder);\\n  color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n  display: \" + p.display + \" !important;\\n  width: \" + p.width + \" !important;\\n  padding: 0 !important;\\n  margin: 0 !important;\\n  border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n  vertical-align: top !important;\\n  margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n  vertical-align: bottom !important;\\n  margin-right: -1px !important;\\n}\",\n          trixId: {\n            get: function get() {\n              return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n            }\n          },\n          labels: {\n            get: function get() {\n              var t, e, n;\n              return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n                matchingSelector: \"label\"\n              })) && ((n = t.control) === this || null === n) && e.push(t), e;\n            }\n          },\n          toolbarElement: {\n            get: function get() {\n              var t, e, n;\n              return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n                id: n\n              }), this.parentNode.insertBefore(t, this), t) : void 0;\n            }\n          },\n          inputElement: {\n            get: function get() {\n              var t, e, n;\n              return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n                type: \"hidden\",\n                id: e\n              }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n            }\n          },\n          editor: {\n            get: function get() {\n              var t;\n              return null != (t = this.editorController) ? t.editor : void 0;\n            }\n          },\n          name: {\n            get: function get() {\n              var t;\n              return null != (t = this.inputElement) ? t.name : void 0;\n            }\n          },\n          value: {\n            get: function get() {\n              var t;\n              return null != (t = this.inputElement) ? t.value : void 0;\n            },\n            set: function set(t) {\n              var e;\n              return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n            }\n          },\n          notify: function notify(t, e) {\n            return this.editorController ? a(\"trix-\" + t, {\n              onElement: this,\n              attributes: e\n            }) : void 0;\n          },\n          setInputElementValue: function setInputElementValue(t) {\n            var e;\n            return null != (e = this.inputElement) ? e.value = t : void 0;\n          },\n          initialize: function initialize() {\n            return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n          },\n          connect: function connect() {\n            return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n              onElement: this\n            }), this.editorController = new e.EditorController({\n              editorElement: this,\n              html: this.defaultValue = this.value\n            }), requestAnimationFrame(function (t) {\n              return function () {\n                return a(\"trix-initialize\", {\n                  onElement: t\n                });\n              };\n            }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n          },\n          disconnect: function disconnect() {\n            var t;\n            return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n          },\n          registerResetListener: function registerResetListener() {\n            return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n          },\n          unregisterResetListener: function unregisterResetListener() {\n            return window.removeEventListener(\"reset\", this.resetListener, !1);\n          },\n          registerClickListener: function registerClickListener() {\n            return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n          },\n          unregisterClickListener: function unregisterClickListener() {\n            return window.removeEventListener(\"click\", this.clickListener, !1);\n          },\n          resetBubbled: function resetBubbled(t) {\n            var e;\n            if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n          },\n          clickBubbled: function clickBubbled(t) {\n            var e;\n            if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n              matchingSelector: \"label\"\n            })) || u.call(this.labels, e) < 0)) return this.focus();\n          },\n          reset: function reset() {\n            return this.value = this.defaultValue;\n          }\n        };\n      }());\n    }.call(this), function () {}.call(this);\n  }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n  if (timeout) {\n    timeout.close();\n  }\n};\n\nfunction Timeout(id, clearFn) {\n  this._id = id;\n  this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n  this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n  clearTimeout(item._idleTimeoutId);\n  var msecs = item._idleTimeout;\n\n  if (msecs >= 0) {\n    item._idleTimeoutId = setTimeout(function onTimeout() {\n      if (item._onTimeout) item._onTimeout();\n    }, msecs);\n  }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto.  Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n  \"use strict\";\n\n  if (global.setImmediate) {\n    return;\n  }\n\n  var nextHandle = 1; // Spec says greater than zero\n\n  var tasksByHandle = {};\n  var currentlyRunningATask = false;\n  var doc = global.document;\n  var registerImmediate;\n\n  function setImmediate(callback) {\n    // Callback can either be a function or a string\n    if (typeof callback !== \"function\") {\n      callback = new Function(\"\" + callback);\n    } // Copy function arguments\n\n\n    var args = new Array(arguments.length - 1);\n\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i + 1];\n    } // Store and register the task\n\n\n    var task = {\n      callback: callback,\n      args: args\n    };\n    tasksByHandle[nextHandle] = task;\n    registerImmediate(nextHandle);\n    return nextHandle++;\n  }\n\n  function clearImmediate(handle) {\n    delete tasksByHandle[handle];\n  }\n\n  function run(task) {\n    var callback = task.callback;\n    var args = task.args;\n\n    switch (args.length) {\n      case 0:\n        callback();\n        break;\n\n      case 1:\n        callback(args[0]);\n        break;\n\n      case 2:\n        callback(args[0], args[1]);\n        break;\n\n      case 3:\n        callback(args[0], args[1], args[2]);\n        break;\n\n      default:\n        callback.apply(undefined, args);\n        break;\n    }\n  }\n\n  function runIfPresent(handle) {\n    // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n    // So if we're currently running a task, we'll need to delay this invocation.\n    if (currentlyRunningATask) {\n      // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n      // \"too much recursion\" error.\n      setTimeout(runIfPresent, 0, handle);\n    } else {\n      var task = tasksByHandle[handle];\n\n      if (task) {\n        currentlyRunningATask = true;\n\n        try {\n          run(task);\n        } finally {\n          clearImmediate(handle);\n          currentlyRunningATask = false;\n        }\n      }\n    }\n  }\n\n  function installNextTickImplementation() {\n    registerImmediate = function registerImmediate(handle) {\n      process.nextTick(function () {\n        runIfPresent(handle);\n      });\n    };\n  }\n\n  function canUsePostMessage() {\n    // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n    // where `global.postMessage` means something completely different and can't be used for this purpose.\n    if (global.postMessage && !global.importScripts) {\n      var postMessageIsAsynchronous = true;\n      var oldOnMessage = global.onmessage;\n\n      global.onmessage = function () {\n        postMessageIsAsynchronous = false;\n      };\n\n      global.postMessage(\"\", \"*\");\n      global.onmessage = oldOnMessage;\n      return postMessageIsAsynchronous;\n    }\n  }\n\n  function installPostMessageImplementation() {\n    // Installs an event handler on `global` for the `message` event: see\n    // * https://developer.mozilla.org/en/DOM/window.postMessage\n    // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n    var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n    var onGlobalMessage = function onGlobalMessage(event) {\n      if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n        runIfPresent(+event.data.slice(messagePrefix.length));\n      }\n    };\n\n    if (global.addEventListener) {\n      global.addEventListener(\"message\", onGlobalMessage, false);\n    } else {\n      global.attachEvent(\"onmessage\", onGlobalMessage);\n    }\n\n    registerImmediate = function registerImmediate(handle) {\n      global.postMessage(messagePrefix + handle, \"*\");\n    };\n  }\n\n  function installMessageChannelImplementation() {\n    var channel = new MessageChannel();\n\n    channel.port1.onmessage = function (event) {\n      var handle = event.data;\n      runIfPresent(handle);\n    };\n\n    registerImmediate = function registerImmediate(handle) {\n      channel.port2.postMessage(handle);\n    };\n  }\n\n  function installReadyStateChangeImplementation() {\n    var html = doc.documentElement;\n\n    registerImmediate = function registerImmediate(handle) {\n      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n      var script = doc.createElement(\"script\");\n\n      script.onreadystatechange = function () {\n        runIfPresent(handle);\n        script.onreadystatechange = null;\n        html.removeChild(script);\n        script = null;\n      };\n\n      html.appendChild(script);\n    };\n  }\n\n  function installSetTimeoutImplementation() {\n    registerImmediate = function registerImmediate(handle) {\n      setTimeout(runIfPresent, 0, handle);\n    };\n  } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n\n\n  var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n  attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments.\n\n  if ({}.toString.call(global.process) === \"[object process]\") {\n    // For Node.js before 0.9\n    installNextTickImplementation();\n  } else if (canUsePostMessage()) {\n    // For non-IE10 modern browsers\n    installPostMessageImplementation();\n  } else if (global.MessageChannel) {\n    // For web workers, where supported\n    installMessageChannelImplementation();\n  } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n    // For IE 6–8\n    installReadyStateChangeImplementation();\n  } else {\n    // For older browsers\n    installSetTimeoutImplementation();\n  }\n\n  attachTo.setImmediate = setImmediate;\n  attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);","// shim for using process in browser\nvar process = module.exports = {}; // 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}\n\nfunction defaultClearTimeout() {\n  throw new Error('clearTimeout has not been defined');\n}\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\n  try {\n    if (typeof clearTimeout === 'function') {\n      cachedClearTimeout = clearTimeout;\n    } else {\n      cachedClearTimeout = defaultClearTimeout;\n    }\n  } catch (e) {\n    cachedClearTimeout = defaultClearTimeout;\n  }\n})();\n\nfunction runTimeout(fun) {\n  if (cachedSetTimeout === setTimeout) {\n    //normal enviroments in sane situations\n    return setTimeout(fun, 0);\n  } // if setTimeout wasn't available but was latter defined\n\n\n  if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n    cachedSetTimeout = setTimeout;\n    return setTimeout(fun, 0);\n  }\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\nfunction runClearTimeout(marker) {\n  if (cachedClearTimeout === clearTimeout) {\n    //normal enviroments in sane situations\n    return clearTimeout(marker);\n  } // if clearTimeout wasn't available but was latter defined\n\n\n  if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n    cachedClearTimeout = clearTimeout;\n    return clearTimeout(marker);\n  }\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\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n  if (!draining || !currentQueue) {\n    return;\n  }\n\n  draining = false;\n\n  if (currentQueue.length) {\n    queue = currentQueue.concat(queue);\n  } else {\n    queueIndex = -1;\n  }\n\n  if (queue.length) {\n    drainQueue();\n  }\n}\n\nfunction drainQueue() {\n  if (draining) {\n    return;\n  }\n\n  var timeout = runTimeout(cleanUpNextTick);\n  draining = true;\n  var len = queue.length;\n\n  while (len) {\n    currentQueue = queue;\n    queue = [];\n\n    while (++queueIndex < len) {\n      if (currentQueue) {\n        currentQueue[queueIndex].run();\n      }\n    }\n\n    queueIndex = -1;\n    len = queue.length;\n  }\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\n  if (arguments.length > 1) {\n    for (var i = 1; i < arguments.length; i++) {\n      args[i - 1] = arguments[i];\n    }\n  }\n\n  queue.push(new Item(fun, args));\n\n  if (queue.length === 1 && !draining) {\n    runTimeout(drainQueue);\n  }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n  this.fun = fun;\n  this.array = array;\n}\n\nItem.prototype.run = function () {\n  this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\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) {\n  return [];\n};\n\nprocess.binding = function (name) {\n  throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n  return '/';\n};\n\nprocess.chdir = function (dir) {\n  throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n  return 0;\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\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar activestorage = {\n  exports: {}\n};\n\n(function (module, exports) {\n  (function (global, factory) {\n    factory(exports);\n  })(commonjsGlobal, function (exports) {\n    var sparkMd5 = {\n      exports: {}\n    };\n\n    (function (module, exports) {\n      (function (factory) {\n        {\n          module.exports = factory();\n        }\n      })(function (undefined$1) {\n        var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n        function md5cycle(x, k) {\n          var a = x[0],\n              b = x[1],\n              c = x[2],\n              d = x[3];\n          a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n          a = (a << 7 | a >>> 25) + b | 0;\n          d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n          d = (d << 12 | d >>> 20) + a | 0;\n          c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n          c = (c << 17 | c >>> 15) + d | 0;\n          b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n          b = (b << 22 | b >>> 10) + c | 0;\n          a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n          a = (a << 7 | a >>> 25) + b | 0;\n          d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n          d = (d << 12 | d >>> 20) + a | 0;\n          c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n          c = (c << 17 | c >>> 15) + d | 0;\n          b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n          b = (b << 22 | b >>> 10) + c | 0;\n          a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n          a = (a << 7 | a >>> 25) + b | 0;\n          d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n          d = (d << 12 | d >>> 20) + a | 0;\n          c += (d & a | ~d & b) + k[10] - 42063 | 0;\n          c = (c << 17 | c >>> 15) + d | 0;\n          b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n          b = (b << 22 | b >>> 10) + c | 0;\n          a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n          a = (a << 7 | a >>> 25) + b | 0;\n          d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n          d = (d << 12 | d >>> 20) + a | 0;\n          c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n          c = (c << 17 | c >>> 15) + d | 0;\n          b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n          b = (b << 22 | b >>> 10) + c | 0;\n          a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n          a = (a << 5 | a >>> 27) + b | 0;\n          d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n          d = (d << 9 | d >>> 23) + a | 0;\n          c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n          c = (c << 14 | c >>> 18) + d | 0;\n          b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n          b = (b << 20 | b >>> 12) + c | 0;\n          a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n          a = (a << 5 | a >>> 27) + b | 0;\n          d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n          d = (d << 9 | d >>> 23) + a | 0;\n          c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n          c = (c << 14 | c >>> 18) + d | 0;\n          b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n          b = (b << 20 | b >>> 12) + c | 0;\n          a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n          a = (a << 5 | a >>> 27) + b | 0;\n          d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n          d = (d << 9 | d >>> 23) + a | 0;\n          c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n          c = (c << 14 | c >>> 18) + d | 0;\n          b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n          b = (b << 20 | b >>> 12) + c | 0;\n          a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n          a = (a << 5 | a >>> 27) + b | 0;\n          d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n          d = (d << 9 | d >>> 23) + a | 0;\n          c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n          c = (c << 14 | c >>> 18) + d | 0;\n          b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n          b = (b << 20 | b >>> 12) + c | 0;\n          a += (b ^ c ^ d) + k[5] - 378558 | 0;\n          a = (a << 4 | a >>> 28) + b | 0;\n          d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n          d = (d << 11 | d >>> 21) + a | 0;\n          c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n          c = (c << 16 | c >>> 16) + d | 0;\n          b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n          b = (b << 23 | b >>> 9) + c | 0;\n          a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n          a = (a << 4 | a >>> 28) + b | 0;\n          d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n          d = (d << 11 | d >>> 21) + a | 0;\n          c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n          c = (c << 16 | c >>> 16) + d | 0;\n          b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n          b = (b << 23 | b >>> 9) + c | 0;\n          a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n          a = (a << 4 | a >>> 28) + b | 0;\n          d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n          d = (d << 11 | d >>> 21) + a | 0;\n          c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n          c = (c << 16 | c >>> 16) + d | 0;\n          b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n          b = (b << 23 | b >>> 9) + c | 0;\n          a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n          a = (a << 4 | a >>> 28) + b | 0;\n          d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n          d = (d << 11 | d >>> 21) + a | 0;\n          c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n          c = (c << 16 | c >>> 16) + d | 0;\n          b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n          b = (b << 23 | b >>> 9) + c | 0;\n          a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n          a = (a << 6 | a >>> 26) + b | 0;\n          d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n          d = (d << 10 | d >>> 22) + a | 0;\n          c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n          c = (c << 15 | c >>> 17) + d | 0;\n          b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n          b = (b << 21 | b >>> 11) + c | 0;\n          a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n          a = (a << 6 | a >>> 26) + b | 0;\n          d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n          d = (d << 10 | d >>> 22) + a | 0;\n          c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n          c = (c << 15 | c >>> 17) + d | 0;\n          b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n          b = (b << 21 | b >>> 11) + c | 0;\n          a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n          a = (a << 6 | a >>> 26) + b | 0;\n          d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n          d = (d << 10 | d >>> 22) + a | 0;\n          c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n          c = (c << 15 | c >>> 17) + d | 0;\n          b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n          b = (b << 21 | b >>> 11) + c | 0;\n          a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n          a = (a << 6 | a >>> 26) + b | 0;\n          d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n          d = (d << 10 | d >>> 22) + a | 0;\n          c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n          c = (c << 15 | c >>> 17) + d | 0;\n          b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n          b = (b << 21 | b >>> 11) + c | 0;\n          x[0] = a + x[0] | 0;\n          x[1] = b + x[1] | 0;\n          x[2] = c + x[2] | 0;\n          x[3] = d + x[3] | 0;\n        }\n\n        function md5blk(s) {\n          var md5blks = [],\n              i;\n\n          for (i = 0; i < 64; i += 4) {\n            md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n          }\n\n          return md5blks;\n        }\n\n        function md5blk_array(a) {\n          var md5blks = [],\n              i;\n\n          for (i = 0; i < 64; i += 4) {\n            md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n          }\n\n          return md5blks;\n        }\n\n        function md51(s) {\n          var n = s.length,\n              state = [1732584193, -271733879, -1732584194, 271733878],\n              i,\n              length,\n              tail,\n              tmp,\n              lo,\n              hi;\n\n          for (i = 64; i <= n; i += 64) {\n            md5cycle(state, md5blk(s.substring(i - 64, i)));\n          }\n\n          s = s.substring(i - 64);\n          length = s.length;\n          tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n          for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n          }\n\n          tail[i >> 2] |= 128 << (i % 4 << 3);\n\n          if (i > 55) {\n            md5cycle(state, tail);\n\n            for (i = 0; i < 16; i += 1) {\n              tail[i] = 0;\n            }\n          }\n\n          tmp = n * 8;\n          tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n          lo = parseInt(tmp[2], 16);\n          hi = parseInt(tmp[1], 16) || 0;\n          tail[14] = lo;\n          tail[15] = hi;\n          md5cycle(state, tail);\n          return state;\n        }\n\n        function md51_array(a) {\n          var n = a.length,\n              state = [1732584193, -271733879, -1732584194, 271733878],\n              i,\n              length,\n              tail,\n              tmp,\n              lo,\n              hi;\n\n          for (i = 64; i <= n; i += 64) {\n            md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n          }\n\n          a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n          length = a.length;\n          tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n          for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= a[i] << (i % 4 << 3);\n          }\n\n          tail[i >> 2] |= 128 << (i % 4 << 3);\n\n          if (i > 55) {\n            md5cycle(state, tail);\n\n            for (i = 0; i < 16; i += 1) {\n              tail[i] = 0;\n            }\n          }\n\n          tmp = n * 8;\n          tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n          lo = parseInt(tmp[2], 16);\n          hi = parseInt(tmp[1], 16) || 0;\n          tail[14] = lo;\n          tail[15] = hi;\n          md5cycle(state, tail);\n          return state;\n        }\n\n        function rhex(n) {\n          var s = \"\",\n              j;\n\n          for (j = 0; j < 4; j += 1) {\n            s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n          }\n\n          return s;\n        }\n\n        function hex(x) {\n          var i;\n\n          for (i = 0; i < x.length; i += 1) {\n            x[i] = rhex(x[i]);\n          }\n\n          return x.join(\"\");\n        }\n\n        if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n        if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n          (function () {\n            function clamp(val, length) {\n              val = val | 0 || 0;\n\n              if (val < 0) {\n                return Math.max(val + length, 0);\n              }\n\n              return Math.min(val, length);\n            }\n\n            ArrayBuffer.prototype.slice = function (from, to) {\n              var length = this.byteLength,\n                  begin = clamp(from, length),\n                  end = length,\n                  num,\n                  target,\n                  targetArray,\n                  sourceArray;\n\n              if (to !== undefined$1) {\n                end = clamp(to, length);\n              }\n\n              if (begin > end) {\n                return new ArrayBuffer(0);\n              }\n\n              num = end - begin;\n              target = new ArrayBuffer(num);\n              targetArray = new Uint8Array(target);\n              sourceArray = new Uint8Array(this, begin, num);\n              targetArray.set(sourceArray);\n              return target;\n            };\n          })();\n        }\n\n        function toUtf8(str) {\n          if (/[\\u0080-\\uFFFF]/.test(str)) {\n            str = unescape(encodeURIComponent(str));\n          }\n\n          return str;\n        }\n\n        function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n          var length = str.length,\n              buff = new ArrayBuffer(length),\n              arr = new Uint8Array(buff),\n              i;\n\n          for (i = 0; i < length; i += 1) {\n            arr[i] = str.charCodeAt(i);\n          }\n\n          return returnUInt8Array ? arr : buff;\n        }\n\n        function arrayBuffer2Utf8Str(buff) {\n          return String.fromCharCode.apply(null, new Uint8Array(buff));\n        }\n\n        function concatenateArrayBuffers(first, second, returnUInt8Array) {\n          var result = new Uint8Array(first.byteLength + second.byteLength);\n          result.set(new Uint8Array(first));\n          result.set(new Uint8Array(second), first.byteLength);\n          return returnUInt8Array ? result : result.buffer;\n        }\n\n        function hexToBinaryString(hex) {\n          var bytes = [],\n              length = hex.length,\n              x;\n\n          for (x = 0; x < length - 1; x += 2) {\n            bytes.push(parseInt(hex.substr(x, 2), 16));\n          }\n\n          return String.fromCharCode.apply(String, bytes);\n        }\n\n        function SparkMD5() {\n          this.reset();\n        }\n\n        SparkMD5.prototype.append = function (str) {\n          this.appendBinary(toUtf8(str));\n          return this;\n        };\n\n        SparkMD5.prototype.appendBinary = function (contents) {\n          this._buff += contents;\n          this._length += contents.length;\n          var length = this._buff.length,\n              i;\n\n          for (i = 64; i <= length; i += 64) {\n            md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n          }\n\n          this._buff = this._buff.substring(i - 64);\n          return this;\n        };\n\n        SparkMD5.prototype.end = function (raw) {\n          var buff = this._buff,\n              length = buff.length,\n              i,\n              tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n              ret;\n\n          for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n          }\n\n          this._finish(tail, length);\n\n          ret = hex(this._hash);\n\n          if (raw) {\n            ret = hexToBinaryString(ret);\n          }\n\n          this.reset();\n          return ret;\n        };\n\n        SparkMD5.prototype.reset = function () {\n          this._buff = \"\";\n          this._length = 0;\n          this._hash = [1732584193, -271733879, -1732584194, 271733878];\n          return this;\n        };\n\n        SparkMD5.prototype.getState = function () {\n          return {\n            buff: this._buff,\n            length: this._length,\n            hash: this._hash.slice()\n          };\n        };\n\n        SparkMD5.prototype.setState = function (state) {\n          this._buff = state.buff;\n          this._length = state.length;\n          this._hash = state.hash;\n          return this;\n        };\n\n        SparkMD5.prototype.destroy = function () {\n          delete this._hash;\n          delete this._buff;\n          delete this._length;\n        };\n\n        SparkMD5.prototype._finish = function (tail, length) {\n          var i = length,\n              tmp,\n              lo,\n              hi;\n          tail[i >> 2] |= 128 << (i % 4 << 3);\n\n          if (i > 55) {\n            md5cycle(this._hash, tail);\n\n            for (i = 0; i < 16; i += 1) {\n              tail[i] = 0;\n            }\n          }\n\n          tmp = this._length * 8;\n          tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n          lo = parseInt(tmp[2], 16);\n          hi = parseInt(tmp[1], 16) || 0;\n          tail[14] = lo;\n          tail[15] = hi;\n          md5cycle(this._hash, tail);\n        };\n\n        SparkMD5.hash = function (str, raw) {\n          return SparkMD5.hashBinary(toUtf8(str), raw);\n        };\n\n        SparkMD5.hashBinary = function (content, raw) {\n          var hash = md51(content),\n              ret = hex(hash);\n          return raw ? hexToBinaryString(ret) : ret;\n        };\n\n        SparkMD5.ArrayBuffer = function () {\n          this.reset();\n        };\n\n        SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n          var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n              length = buff.length,\n              i;\n          this._length += arr.byteLength;\n\n          for (i = 64; i <= length; i += 64) {\n            md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n          }\n\n          this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n          return this;\n        };\n\n        SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n          var buff = this._buff,\n              length = buff.length,\n              tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n              i,\n              ret;\n\n          for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= buff[i] << (i % 4 << 3);\n          }\n\n          this._finish(tail, length);\n\n          ret = hex(this._hash);\n\n          if (raw) {\n            ret = hexToBinaryString(ret);\n          }\n\n          this.reset();\n          return ret;\n        };\n\n        SparkMD5.ArrayBuffer.prototype.reset = function () {\n          this._buff = new Uint8Array(0);\n          this._length = 0;\n          this._hash = [1732584193, -271733879, -1732584194, 271733878];\n          return this;\n        };\n\n        SparkMD5.ArrayBuffer.prototype.getState = function () {\n          var state = SparkMD5.prototype.getState.call(this);\n          state.buff = arrayBuffer2Utf8Str(state.buff);\n          return state;\n        };\n\n        SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n          state.buff = utf8Str2ArrayBuffer(state.buff, true);\n          return SparkMD5.prototype.setState.call(this, state);\n        };\n\n        SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n        SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n        SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n          var hash = md51_array(new Uint8Array(arr)),\n              ret = hex(hash);\n          return raw ? hexToBinaryString(ret) : ret;\n        };\n\n        return SparkMD5;\n      });\n    })(sparkMd5);\n\n    var SparkMD5 = sparkMd5.exports;\n    var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n    var FileChecksum = /*#__PURE__*/function () {\n      function FileChecksum(file) {\n        _classCallCheck(this, FileChecksum);\n\n        this.file = file;\n        this.chunkSize = 2097152;\n        this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n        this.chunkIndex = 0;\n      }\n\n      _createClass(FileChecksum, [{\n        key: \"create\",\n        value: function create(callback) {\n          var _this = this;\n\n          this.callback = callback;\n          this.md5Buffer = new SparkMD5.ArrayBuffer();\n          this.fileReader = new FileReader();\n          this.fileReader.addEventListener(\"load\", function (event) {\n            return _this.fileReaderDidLoad(event);\n          });\n          this.fileReader.addEventListener(\"error\", function (event) {\n            return _this.fileReaderDidError(event);\n          });\n          this.readNextChunk();\n        }\n      }, {\n        key: \"fileReaderDidLoad\",\n        value: function fileReaderDidLoad(event) {\n          this.md5Buffer.append(event.target.result);\n\n          if (!this.readNextChunk()) {\n            var binaryDigest = this.md5Buffer.end(true);\n            var base64digest = btoa(binaryDigest);\n            this.callback(null, base64digest);\n          }\n        }\n      }, {\n        key: \"fileReaderDidError\",\n        value: function fileReaderDidError(event) {\n          this.callback(\"Error reading \".concat(this.file.name));\n        }\n      }, {\n        key: \"readNextChunk\",\n        value: function readNextChunk() {\n          if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n            var _start = this.chunkIndex * this.chunkSize;\n\n            var end = Math.min(_start + this.chunkSize, this.file.size);\n            var bytes = fileSlice.call(this.file, _start, end);\n            this.fileReader.readAsArrayBuffer(bytes);\n            this.chunkIndex++;\n            return true;\n          } else {\n            return false;\n          }\n        }\n      }], [{\n        key: \"create\",\n        value: function create(file, callback) {\n          var instance = new FileChecksum(file);\n          instance.create(callback);\n        }\n      }]);\n\n      return FileChecksum;\n    }();\n\n    function getMetaValue(name) {\n      var element = findElement(document.head, \"meta[name=\\\"\".concat(name, \"\\\"]\"));\n\n      if (element) {\n        return element.getAttribute(\"content\");\n      }\n    }\n\n    function findElements(root, selector) {\n      if (typeof root == \"string\") {\n        selector = root;\n        root = document;\n      }\n\n      var elements = root.querySelectorAll(selector);\n      return toArray(elements);\n    }\n\n    function findElement(root, selector) {\n      if (typeof root == \"string\") {\n        selector = root;\n        root = document;\n      }\n\n      return root.querySelector(selector);\n    }\n\n    function dispatchEvent(element, type) {\n      var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var disabled = element.disabled;\n      var bubbles = eventInit.bubbles,\n          cancelable = eventInit.cancelable,\n          detail = eventInit.detail;\n      var event = document.createEvent(\"Event\");\n      event.initEvent(type, bubbles || true, cancelable || true);\n      event.detail = detail || {};\n\n      try {\n        element.disabled = false;\n        element.dispatchEvent(event);\n      } finally {\n        element.disabled = disabled;\n      }\n\n      return event;\n    }\n\n    function toArray(value) {\n      if (Array.isArray(value)) {\n        return value;\n      } else if (Array.from) {\n        return Array.from(value);\n      } else {\n        return [].slice.call(value);\n      }\n    }\n\n    var BlobRecord = /*#__PURE__*/function () {\n      function BlobRecord(file, checksum, url) {\n        var _this2 = this;\n\n        _classCallCheck(this, BlobRecord);\n\n        this.file = file;\n        this.attributes = {\n          filename: file.name,\n          content_type: file.type || \"application/octet-stream\",\n          byte_size: file.size,\n          checksum: checksum\n        };\n        this.xhr = new XMLHttpRequest();\n        this.xhr.open(\"POST\", url, true);\n        this.xhr.responseType = \"json\";\n        this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n        this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n        this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n        var csrfToken = getMetaValue(\"csrf-token\");\n\n        if (csrfToken != undefined) {\n          this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n        }\n\n        this.xhr.addEventListener(\"load\", function (event) {\n          return _this2.requestDidLoad(event);\n        });\n        this.xhr.addEventListener(\"error\", function (event) {\n          return _this2.requestDidError(event);\n        });\n      }\n\n      _createClass(BlobRecord, [{\n        key: \"status\",\n        get: function get() {\n          return this.xhr.status;\n        }\n      }, {\n        key: \"response\",\n        get: function get() {\n          var _this$xhr = this.xhr,\n              responseType = _this$xhr.responseType,\n              response = _this$xhr.response;\n\n          if (responseType == \"json\") {\n            return response;\n          } else {\n            return JSON.parse(response);\n          }\n        }\n      }, {\n        key: \"create\",\n        value: function create(callback) {\n          this.callback = callback;\n          this.xhr.send(JSON.stringify({\n            blob: this.attributes\n          }));\n        }\n      }, {\n        key: \"requestDidLoad\",\n        value: function requestDidLoad(event) {\n          if (this.status >= 200 && this.status < 300) {\n            var response = this.response;\n            var direct_upload = response.direct_upload;\n            delete response.direct_upload;\n            this.attributes = response;\n            this.directUploadData = direct_upload;\n            this.callback(null, this.toJSON());\n          } else {\n            this.requestDidError(event);\n          }\n        }\n      }, {\n        key: \"requestDidError\",\n        value: function requestDidError(event) {\n          this.callback(\"Error creating Blob for \\\"\".concat(this.file.name, \"\\\". Status: \").concat(this.status));\n        }\n      }, {\n        key: \"toJSON\",\n        value: function toJSON() {\n          var result = {};\n\n          for (var key in this.attributes) {\n            result[key] = this.attributes[key];\n          }\n\n          return result;\n        }\n      }]);\n\n      return BlobRecord;\n    }();\n\n    var BlobUpload = /*#__PURE__*/function () {\n      function BlobUpload(blob) {\n        var _this3 = this;\n\n        _classCallCheck(this, BlobUpload);\n\n        this.blob = blob;\n        this.file = blob.file;\n        var _blob$directUploadDat = blob.directUploadData,\n            url = _blob$directUploadDat.url,\n            headers = _blob$directUploadDat.headers;\n        this.xhr = new XMLHttpRequest();\n        this.xhr.open(\"PUT\", url, true);\n        this.xhr.responseType = \"text\";\n\n        for (var key in headers) {\n          this.xhr.setRequestHeader(key, headers[key]);\n        }\n\n        this.xhr.addEventListener(\"load\", function (event) {\n          return _this3.requestDidLoad(event);\n        });\n        this.xhr.addEventListener(\"error\", function (event) {\n          return _this3.requestDidError(event);\n        });\n      }\n\n      _createClass(BlobUpload, [{\n        key: \"create\",\n        value: function create(callback) {\n          this.callback = callback;\n          this.xhr.send(this.file.slice());\n        }\n      }, {\n        key: \"requestDidLoad\",\n        value: function requestDidLoad(event) {\n          var _this$xhr2 = this.xhr,\n              status = _this$xhr2.status,\n              response = _this$xhr2.response;\n\n          if (status >= 200 && status < 300) {\n            this.callback(null, response);\n          } else {\n            this.requestDidError(event);\n          }\n        }\n      }, {\n        key: \"requestDidError\",\n        value: function requestDidError(event) {\n          this.callback(\"Error storing \\\"\".concat(this.file.name, \"\\\". Status: \").concat(this.xhr.status));\n        }\n      }]);\n\n      return BlobUpload;\n    }();\n\n    var id = 0;\n\n    var DirectUpload = /*#__PURE__*/function () {\n      function DirectUpload(file, url, delegate) {\n        _classCallCheck(this, DirectUpload);\n\n        this.id = ++id;\n        this.file = file;\n        this.url = url;\n        this.delegate = delegate;\n      }\n\n      _createClass(DirectUpload, [{\n        key: \"create\",\n        value: function create(callback) {\n          var _this4 = this;\n\n          FileChecksum.create(this.file, function (error, checksum) {\n            if (error) {\n              callback(error);\n              return;\n            }\n\n            var blob = new BlobRecord(_this4.file, checksum, _this4.url);\n            notify(_this4.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n            blob.create(function (error) {\n              if (error) {\n                callback(error);\n              } else {\n                var upload = new BlobUpload(blob);\n                notify(_this4.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n                upload.create(function (error) {\n                  if (error) {\n                    callback(error);\n                  } else {\n                    callback(null, blob.toJSON());\n                  }\n                });\n              }\n            });\n          });\n        }\n      }]);\n\n      return DirectUpload;\n    }();\n\n    function notify(object, methodName) {\n      if (object && typeof object[methodName] == \"function\") {\n        for (var _len = arguments.length, messages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n          messages[_key - 2] = arguments[_key];\n        }\n\n        return object[methodName].apply(object, messages);\n      }\n    }\n\n    var DirectUploadController = /*#__PURE__*/function () {\n      function DirectUploadController(input, file) {\n        _classCallCheck(this, DirectUploadController);\n\n        this.input = input;\n        this.file = file;\n        this.directUpload = new DirectUpload(this.file, this.url, this);\n        this.dispatch(\"initialize\");\n      }\n\n      _createClass(DirectUploadController, [{\n        key: \"start\",\n        value: function start(callback) {\n          var _this5 = this;\n\n          var hiddenInput = document.createElement(\"input\");\n          hiddenInput.type = \"hidden\";\n          hiddenInput.name = this.input.name;\n          this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n          this.dispatch(\"start\");\n          this.directUpload.create(function (error, attributes) {\n            if (error) {\n              hiddenInput.parentNode.removeChild(hiddenInput);\n\n              _this5.dispatchError(error);\n            } else {\n              hiddenInput.value = attributes.signed_id;\n            }\n\n            _this5.dispatch(\"end\");\n\n            callback(error);\n          });\n        }\n      }, {\n        key: \"uploadRequestDidProgress\",\n        value: function uploadRequestDidProgress(event) {\n          var progress = event.loaded / event.total * 100;\n\n          if (progress) {\n            this.dispatch(\"progress\", {\n              progress: progress\n            });\n          }\n        }\n      }, {\n        key: \"url\",\n        get: function get() {\n          return this.input.getAttribute(\"data-direct-upload-url\");\n        }\n      }, {\n        key: \"dispatch\",\n        value: function dispatch(name) {\n          var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n          detail.file = this.file;\n          detail.id = this.directUpload.id;\n          return dispatchEvent(this.input, \"direct-upload:\".concat(name), {\n            detail: detail\n          });\n        }\n      }, {\n        key: \"dispatchError\",\n        value: function dispatchError(error) {\n          var event = this.dispatch(\"error\", {\n            error: error\n          });\n\n          if (!event.defaultPrevented) {\n            alert(error);\n          }\n        }\n      }, {\n        key: \"directUploadWillCreateBlobWithXHR\",\n        value: function directUploadWillCreateBlobWithXHR(xhr) {\n          this.dispatch(\"before-blob-request\", {\n            xhr: xhr\n          });\n        }\n      }, {\n        key: \"directUploadWillStoreFileWithXHR\",\n        value: function directUploadWillStoreFileWithXHR(xhr) {\n          var _this6 = this;\n\n          this.dispatch(\"before-storage-request\", {\n            xhr: xhr\n          });\n          xhr.upload.addEventListener(\"progress\", function (event) {\n            return _this6.uploadRequestDidProgress(event);\n          });\n        }\n      }]);\n\n      return DirectUploadController;\n    }();\n\n    var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n    var DirectUploadsController = /*#__PURE__*/function () {\n      function DirectUploadsController(form) {\n        _classCallCheck(this, DirectUploadsController);\n\n        this.form = form;\n        this.inputs = findElements(form, inputSelector).filter(function (input) {\n          return input.files.length;\n        });\n      }\n\n      _createClass(DirectUploadsController, [{\n        key: \"start\",\n        value: function start(callback) {\n          var _this7 = this;\n\n          var controllers = this.createDirectUploadControllers();\n\n          var startNextController = function startNextController() {\n            var controller = controllers.shift();\n\n            if (controller) {\n              controller.start(function (error) {\n                if (error) {\n                  callback(error);\n\n                  _this7.dispatch(\"end\");\n                } else {\n                  startNextController();\n                }\n              });\n            } else {\n              callback();\n\n              _this7.dispatch(\"end\");\n            }\n          };\n\n          this.dispatch(\"start\");\n          startNextController();\n        }\n      }, {\n        key: \"createDirectUploadControllers\",\n        value: function createDirectUploadControllers() {\n          var controllers = [];\n          this.inputs.forEach(function (input) {\n            toArray(input.files).forEach(function (file) {\n              var controller = new DirectUploadController(input, file);\n              controllers.push(controller);\n            });\n          });\n          return controllers;\n        }\n      }, {\n        key: \"dispatch\",\n        value: function dispatch(name) {\n          var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n          return dispatchEvent(this.form, \"direct-uploads:\".concat(name), {\n            detail: detail\n          });\n        }\n      }]);\n\n      return DirectUploadsController;\n    }();\n\n    var processingAttribute = \"data-direct-uploads-processing\";\n    var submitButtonsByForm = new WeakMap();\n    var started = false;\n\n    function start() {\n      if (!started) {\n        started = true;\n        document.addEventListener(\"click\", didClick, true);\n        document.addEventListener(\"submit\", didSubmitForm, true);\n        document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n      }\n    }\n\n    function didClick(event) {\n      var target = event.target;\n\n      if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n        submitButtonsByForm.set(target.form, target);\n      }\n    }\n\n    function didSubmitForm(event) {\n      handleFormSubmissionEvent(event);\n    }\n\n    function didSubmitRemoteElement(event) {\n      if (event.target.tagName == \"FORM\") {\n        handleFormSubmissionEvent(event);\n      }\n    }\n\n    function handleFormSubmissionEvent(event) {\n      var form = event.target;\n\n      if (form.hasAttribute(processingAttribute)) {\n        event.preventDefault();\n        return;\n      }\n\n      var controller = new DirectUploadsController(form);\n      var inputs = controller.inputs;\n\n      if (inputs.length) {\n        event.preventDefault();\n        form.setAttribute(processingAttribute, \"\");\n        inputs.forEach(disable);\n        controller.start(function (error) {\n          form.removeAttribute(processingAttribute);\n\n          if (error) {\n            inputs.forEach(enable);\n          } else {\n            submitForm(form);\n          }\n        });\n      }\n    }\n\n    function submitForm(form) {\n      var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n      if (button) {\n        var _button = button,\n            disabled = _button.disabled;\n        button.disabled = false;\n        button.focus();\n        button.click();\n        button.disabled = disabled;\n      } else {\n        button = document.createElement(\"input\");\n        button.type = \"submit\";\n        button.style.display = \"none\";\n        form.appendChild(button);\n        button.click();\n        form.removeChild(button);\n      }\n\n      submitButtonsByForm.delete(form);\n    }\n\n    function disable(input) {\n      input.disabled = true;\n    }\n\n    function enable(input) {\n      input.disabled = false;\n    }\n\n    function autostart() {\n      if (window.ActiveStorage) {\n        start();\n      }\n    }\n\n    setTimeout(autostart, 1);\n    exports.DirectUpload = DirectUpload;\n    exports.start = start;\n    Object.defineProperty(exports, \"__esModule\", {\n      value: true\n    });\n  });\n})(activestorage, activestorage.exports);\n\nvar AttachmentUpload = /*#__PURE__*/function () {\n  function AttachmentUpload(attachment, element) {\n    _classCallCheck(this, AttachmentUpload);\n\n    this.attachment = attachment;\n    this.element = element;\n    this.directUpload = new activestorage.exports.DirectUpload(attachment.file, this.directUploadUrl, this);\n  }\n\n  _createClass(AttachmentUpload, [{\n    key: \"start\",\n    value: function start() {\n      this.directUpload.create(this.directUploadDidComplete.bind(this));\n    }\n  }, {\n    key: \"directUploadWillStoreFileWithXHR\",\n    value: function directUploadWillStoreFileWithXHR(xhr) {\n      var _this8 = this;\n\n      xhr.upload.addEventListener(\"progress\", function (event) {\n        var progress = event.loaded / event.total * 100;\n\n        _this8.attachment.setUploadProgress(progress);\n      });\n    }\n  }, {\n    key: \"directUploadDidComplete\",\n    value: function directUploadDidComplete(error, attributes) {\n      if (error) {\n        throw new Error(\"Direct upload failed: \".concat(error));\n      }\n\n      this.attachment.setAttributes({\n        sgid: attributes.attachable_sgid,\n        url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n      });\n    }\n  }, {\n    key: \"createBlobUrl\",\n    value: function createBlobUrl(signedId, filename) {\n      return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n    }\n  }, {\n    key: \"directUploadUrl\",\n    get: function get() {\n      return this.element.dataset.directUploadUrl;\n    }\n  }, {\n    key: \"blobUrlTemplate\",\n    get: function get() {\n      return this.element.dataset.blobUrlTemplate;\n    }\n  }]);\n\n  return AttachmentUpload;\n}();\n\naddEventListener(\"trix-attachment-add\", function (event) {\n  var attachment = event.attachment,\n      target = event.target;\n\n  if (attachment.file) {\n    var upload = new AttachmentUpload(attachment, target);\n    upload.start();\n  }\n});","module.exports = __webpack_public_path__ + \"media/images/Sougyokeikakusyo-40ac13c86ecde23c174e9acef876b5d4.png\";","module.exports = __webpack_public_path__ + \"media/images/Suuchikeikakusyo-cb2aca9c4173ac1328a739521e8dd963.png\";","module.exports = __webpack_public_path__ + \"media/images/arrow-d0edec1100209348ba12e3358e54313d.svg\";","module.exports = __webpack_public_path__ + \"media/images/arrow-01-d6bd58963ef880b2c5a124c5c094dbc5.svg\";","module.exports = __webpack_public_path__ + \"media/images/arrow-01-white-ed01fd77b6de3cbcf64780150bd0ea7c.svg\";","module.exports = __webpack_public_path__ + \"media/images/banner--lp-fv-search-231dc696a73eb45587240c173a93e0e6.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-bpsp-1e931ea464ecbec4115bab6434b8f9e1.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-freenance-18f65fbbba1b38ffe4f5d57fbf895ebd.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-kaikeisoft-0c0ef64719e1f0caae3555bc40d15e0b.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-kakuteishinkoku-a3819d5dc73cb793b120f5a081facec7.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-kyuyoservice-ca01d30a29f795d18d0aa7df4536ea23.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-lending-shikinbanner-f35d4c5ad01ed2e3b5dcd0006ed8e921.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-mail-a1dcf76519152d2e578a517d3ec9df47.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-misoca-ea2297ef41ab4d59fcd0c4024c097e90.png\";","module.exports = __webpack_public_path__ + \"media/images/banner--ls-sogyokeikaku-ba82c41121ab42291a653333b32ce5fb.png\";","module.exports = __webpack_public_path__ + \"media/images/bg--plans-lp-fv-e95cd0cd1f6dc4697acfb426f1505f82.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--dreamgate--bp-entry--wide_600_120-d53602d6a9ee5805eb368d1996f69889.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--dreamgate--bp-entry--wide_792_200-c74a442ad67ddee09e121bc36904d39c.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--dreamgate--bp-entry_300_300-969bc380c2e9032a85031c40518d402f.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--kaikei--pc-e14a37763d4cd76e6b94bb51010cabf4.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--kaikei--wide--sp-ebe4abb90c28700793af595599d5fae9.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--misoca--pc-16f1169285c4e48e548f4a6e7d7e96ad.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--misoca--wide--sp-bec54e30e9725e119064a976c8de6bd0.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--shindan-lp--pc-abf9381c082054284253279e8ee3cdb2.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--shindan-lp--sp-afb551b3b75397a08f93b664ea7307aa.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--shinkoku--pc-5cea85623e5f0b01408ea2153b5a18cc.png\";","module.exports = __webpack_public_path__ + \"media/images/bnr--shinkoku--wide--sp-8fab964470b997ce1e88c93efb5256f7.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--A-c11ecd10240949a620be5bcd52c7c3b9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--B-21877c11229ee00d16aafb0bfca997cb.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--C-384096d90e1c551e995b8f593bd8c246.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--S-24e7138c38665ebfa302dbd29afcd360.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--accordion--circle--minus-da09e1713f503fdd8c80b0eded965546.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--accordion--circle--plus-1a36735fff4d79db636800edf80e44d9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--account-b06cfaa2f61375472c51ac16d9d5b1d7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--alert-triangle-9af5fc8d9f9f5ebe539dc3eb18e264f8.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--alert-triangle--red-b04e03d04b88fe6faf7f4a0d8e3f0980.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--announce--expire-soon-73c858cada005f49596b5d57f00922ba.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--announce--expired-907b1932b264a83f2e5f60ec79e94fff.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--anounce-54e2f91be7cf1b788468ce6d36ebff26.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--back-page-3701894464964b4c720c53a1a4c61b6e.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--back-page--hover-f56b2fec9b205a0a6791d7f9a2e141d1.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--blue-384f70a3b8e9814385b8c392674208f8.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--breadcrumb-0b715d5bf8f7d58e9b16ae2d7272a07d.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--next-9784a63929b507f412c09483ab32ba7e.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--next--history-192efc86ea5812de5757bf879dd80221.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--next--learn-0d2f69851f06a981501ac1f32859429c.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--next--top-fv-card-c19825f78facb2d1345adc7310ada73c.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--pink-26db9b2562de7851c1935f64141bc181.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--prev-2629db3c99a3412aa640ea8b0cf8bf83.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--prev--history-26ee433fd8da75f32eedd253ddbd8e29.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--right-6c01f6fed53954f6a6175263410fd985.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--selectbox-a008983d247e4a2139a1150012c6ea00.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--stepper-273ef91f526b5906e3a251c5c4370018.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--stepper--active-ab7c890c3c5f35521edef41bf0d2c63f.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--tab--on-e53efbe864b8271c2f67477b2c297442.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow--yellow-baee131e2c1bbfd559b4389bde014e57.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow-next--search-result-card-9149ee130a2ac7f4135eb8d7dbd8ce23.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrow-next--search-result-card--hover-06265b80a4d9244fb0ed7f53a0cf4c11.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrowhead-down-25bde2197fab76a5fc17d1ff42fd94ea.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--arrowhead-up-703a9a3bf5eb8bf34f1cc5859836a009.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--back-to-top-a09b50b562802e641897af62aaa4abb1.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--bad-0ab5cc86db1e9f8664181606ba090409.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--beginner--xs-ba7243ec2f51ecbf1d31af8a91b441a2.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--bell-5f84c0073985e9510676eb2497894992.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--bell--blue--lg-c75957378604130ab83b2a49bae004fe.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--bell--blue--sm-c75957378604130ab83b2a49bae004fe.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--bell--xs-f0169726de0177fc98f323c6dd89fe2e.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--book--xs-d2cf5e7c0d54cf6931fb1ad97eafe6da.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-designer-927cb5ffcbe2513d1256da60a0d26ada.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-hudosan-458652137fd54ca58e38b6fbd8bc01d4.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-inshoku-842fabc6d827f011184c322508ea3f5d.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-it-820ed27cc82f562f3d95efdddb7bd22e.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-kensetsu-73cfc9e73841aa5220a0c6969a57281c.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-kouri-cd873e974022367b79e67dcd299ee091.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-netshop-1109f9228e44948924c102fbe3a8f8d8.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-ribiyo-e868aed568b4d260eaf9c7ac7e3ea31e.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-seitai-e41fa363728fcb50505a59db6ec5e9ae.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-sonota-305a9cecaa8312f164be82668a62ceb3.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-unso-3a0fe0ec31cfed8a18e1db7d5e82f438.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-webapp-e94d2a17249a565e98d4d78685da2dbb.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--bs-writer-3e4f9e43ae383c1c0d70d4ddb89198da.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--building-567d2439d66b719aa0d3018faf1687bc.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--bullet-6192df7e101b6fb7cbcbdff8f5fe3801.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--chasefooter--consulting-df14468a2eb9986bba8889beb7846ac5.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--chasefooter--external--link-fe976c0dad65b85d6bf1b6efbdc62407.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--chasefooter--relation-ffd10f65c1f107a72da4de6ff6308432.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--checkbox-80b8783b24e71e291e8d23fac39dd233.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--checkbox-checked-acf11faf7d070e1e8b04398f447eea29.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--checkmark-a484b07356817d98d709ff72f5a34ec1.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--checkmark--cyan-blue-75c8c8dad3ca58efe355989c9f0143f1.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--checkmark--white-bd461c68780c5a07c9ea3dca6761b8bf.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--chevron_right-a34e81b85d2635892c58a902d59f25a7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--chevron_right--search-result-9aceab134a780beec0a9b8d3760724d8.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--circle-question-22f02d64216b313ea3a8370aa8986ee3.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--close-modal-d59cdf72c8ad7bdbfcf77b5c468f8e04.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--consulting--xs-1887d949a843c7739e57c649489e8fb2.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--copy-ae2cbdf751603d0970bc1362c8936896.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--copy--big-0572fd0c64081a5e154b6e60913866ab.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--cross-7f50c700170d0664fdba004e14c2b672.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--delete-5e3dc85da4d9b03c00f4cea63a1dc3d7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--dots-13fab71f136de237e380b91d4768c600.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--edit-score-043d6cbc5d20d87332022f2018f95fab.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--envelop-bd9405a27bf5d6256bb0970b872fd363.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--error-e50d2570346c530f332778fa0c8b51f5.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--error--blue-c0b71a0d3a225da9299d1edf08a0b1b4.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--exclamation-f79c257b1ae29340957a7434671319c9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--expire-soon-2d4d759b8b4b7341047de72d4b609415.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--expired-98b8dbd97c777eae0178627cea237198.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--external-link-0f1055ed63a00933109fdc465cf52e4d.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--favorite-button-hover--add-24c5f11c7dd01449227e09e8092c9f0e.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--favorite-button-hover--remove-535f3076a9aa6ddcdb3931e0166ae771.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--file-register-670dee5e7b6caf8c813ce4684c2e1a2f.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--fine-dfec9d6587fb0b7aa8e4165ad06d924b.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--gabage-56e50fb300ed5ef1c733b12c341811fc.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--good-3337d47e02b6dfab55d0cedb263ae371.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--hand-point-right-solid-6ae2df8efe34099432933dbe36ac1f9d.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--heart-mark--off-09d282e81b484839d986480f3a1ba1c9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--heart-mark--on-bd18818fb6de7a584e4e2944553ed564.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--heart-mark--pink-9c7cc9849361990e3307c18b578a74e3.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--heart-mark--white-eed918111adb909e8b3a20e72c655186.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--history-154a7b93f3e285cb38390db77be246c9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--history--white-f85ca6560a574465c35fdf33c6e9094d.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--info--blue-0cbecd2fad158031227c72cad349315a.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--info--darkblue-451ee6ad47dfd2f7a22a9b527e120796.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--links--blue-a50d72eaf494f01825dec6544021c1d1.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--links--green-700ee8396a23af81ed1977d5822bcbaa.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--lock-2bd5091629c184637ed8f1916dea1555.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--login-03da0b7ea6981c94f84d02b2b8d09877.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--login--blue-d8fa39057f0d1051686e2ac115864ae7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--member-b26234c493051c1bbfd2797f28958ed6.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--member--blue-1550ca5dce508f5abb0100a819615a46.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--menu--consult-e83b356e92f50f4e19802f9f6bb5763e.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--menu--make-plan-5f8f67ed33f5c48ded9c885f8b1d4ffe.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--menu--search-cc6155d3d2269342bec31362f73a07d5.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--menu--study-617b9e5fac5658b2d6ea8eb147717310.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--menu--xs-eb9eb3a40bd0626f9b68ad5ed6d3fbc6.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--minus-fe495417be6354103061006330f64d2f.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--mypage-b62c68f70ab2c450f3a6588a5aac1db8.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--normal-adafae4bce57ae55d35f378fbcba4f14.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--overwrite-facc8406689bfa7443486f9b1be250d9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--overwrite-orange-a7c7ab4c5ec2e7d133106ef3c363e1e7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--pen-9cf174c48bd5b6093438a07634370c15.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--plans-lp-fv-01-942a8528bbdd58f97530e1f8d0105fab.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--plans-lp-fv-02-aeae8c515be6966b6e5fd73ff4cd1c23.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--plans-lp-fv-03-7e561cfb94c2c775d1831dde515c8078.png\";","module.exports = __webpack_public_path__ + \"media/images/icon--plus-f812f915f0ada22a9488c202901ec023.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--plus--ui-orange-7eda762139200799296f3558ca5ca093.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--plus--white-39834aec25cd0713276c4a0fdc5e4501.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--plus-square-0452aed11d3abf0b1d173bb6378f79dd.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--question-61843216ee30f01788373dda2e177aad.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--read-more--minus-fbc86b5dcf3f6b523508a561042e2ec7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--read-more--plus-49042ce56ce3f9fde1131095db1e04ce.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--register-f1d26c5665da0c9f8f61d80bd6892d29.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--rising-arrow-78720d746aa8c0402f393f3cf9fefa8a.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--sc--circle-plus--off-87cd13df2039314e3c7efa699b9dce58.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--sc--circle-plus--on-8889ccad1aafc4cbbc256d892439e214.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--sc--select-f0c517b9b92c33a5b04a4070d730e0d5.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--sc--select--modal-25f6de03326ae89292adbe671a2bc584.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--sc--submit-btn--off-e0cc07b8eecd9cae6ad71c6622281b3d.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--sc--submit-btn--on-4f0463e73febc27a0a4ad48388bd7256.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--scroll-top-7eed017c61f7d2896a18fe52a59e2d9d.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search-3621c9419e37995fde370723d9ce5915.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--enhanced-101395cfd884d391270fd7bc183d2673.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--enhanced--xs-28d4b9b4dbf27d673c84bde845f67f99.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--enhanced--xs--rv-5c38b17f6a0f73bdba369cdd48a64dfb.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--learnSearch-9496beb0ab892889948d75396370e104.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--main-e51fd960c7fc3d4636c3c4acb94c7b61.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--main--type2-45fa7ae0fbe2d4eed332c36cf79e83b9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--main--xs-2841cf9116cb395face958be4a682992.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--research-eddd127bf086fff09d2e0e3f180b2920.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search--xs-e549f5b40fecec770335b85ab58c8aa6.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search-condition-0f1435dcb08c6e7f27ef47fe72e08c28.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--search-result-not-found-028aac544a15da74f9c568694f01b020.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--star-5249c3b04ac267fff1cfcbbae483eb24.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--star--gray-60328463a2747e20df9da9d245baf366.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--star--gray--filled-98288ca344bc4a190d987160ea1113fb.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--star--white-563f88473d1a669c525fbc30bae30bf2.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--star--yellow--filled-ef841dffae28320af0bcb955782c0867.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--success-872628d0db1aceaa4026d80b718327a3.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--switching--card-9e358fc1f21490bc19da29ece672f5ea.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--switching--card--on-aba8073f6bf55df8a65e00ec0b3653b2.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--switching--carousel--next-26d4a50490c6ea5beb5bc97690f160b5.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--switching--carousel--prev-bcfd1d6f7b87e19d0f99b3af01f0c806.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--switching--table-0a6c683e5d95382e3039e971801dfae9.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--switching--table--on-a85d55dde6a8125179798d9f0398cc25.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--tooltip-1e21d537dec8e56afd199b9b76d754f7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--top-ov--book-8faec845131034a4af4a9108da07d41a.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--top-ov--pc-9bb71f22209af5cf3a1168cc2c1bfcb6.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--top-ov--pen-8de70a44ef1f71c673f0a9b4e3e68cd7.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--top-ov--sp-be08c4886899cceaaccd1b5bc3740d9f.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--triangle--step-5d41c96c33962f136422d9d4f474e28a.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--upload-ea7da34ef5c118d20013d662ef19267a.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--window-close-014e7cb70b712a1c9b5d1511b234e282.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--window-close--blue-a7f4e2a66e949bcfc6265cdd25cee474.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--window-close--cross-mark--white-2b3d9e7312f65c329dd0daf3426172a8.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--window-close--dark-gray-d0d3ea8d6f0ff000168e3e52a48a37e5.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon--window-close--xs-c56928e5701090044cf2af4c85179e46.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-newwin-e951c4bce5240ee27663ccde981a85a7.png\";","module.exports = __webpack_public_path__ + \"media/images/icon_shindan-af7004678cf7eb887e0b261f7f9ae3bd.svg\";","module.exports = __webpack_public_path__ + \"media/images/inner-data-object-689eabdbe554db7e7ea88564607e886d.png\";","module.exports = __webpack_public_path__ + \"media/images/label--yayoi-data-support-b9828564369ba3e2a9a0ab80823f1d31.svg\";","module.exports = __webpack_public_path__ + \"media/images/learn-search/fig-kv-98a77d8821b749b08d695ffe26a433d9.svg\";","module.exports = __webpack_public_path__ + \"media/images/learn-search/thumbnail--sample-6f7644f087941f2e0fdf353d5ab2fbf1.png\";","module.exports = __webpack_public_path__ + \"media/images/logo--shikin-choutatu-navi-b10224fe9286baa16477b882fb09c129.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo--shikin-choutatu-navi2-512fbefda66cbed818d4ae1f87a6f585.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-facebook-d92bc035701e4155ae17b61c9632c8eb.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-facebook-circle-4db11559adf2f8f2d0e5603d16218c9e.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-hatenabookmark-db4cdbdb0bf983fb9d9da7c16573f96f.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-line-0bcadb84638290f9ca4c071033f31efc.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-line2-15ead3dd235e006b61407f6802a7f3ac.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-orix-345d1352ddab1ef166167a359eed2392.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-pocket-923e39eae6629b8f1975403cfa6e7693.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-twitter-circle-38678025816590ea55e9a887af32ac03.svg\";","module.exports = __webpack_public_path__ + \"media/images/logo-x-cd5a22ed0b79f9a3c937b47160b3ad4f.svg\";","module.exports = __webpack_public_path__ + \"media/images/lp-fv--shikin-c737ed3f619c0dd79b892fb6b32e6efa.png\";","module.exports = __webpack_public_path__ + \"media/images/lp-sec-fts--consult-0af7b0a1466739a6d82be87828e1e3a4.jpg\";","module.exports = __webpack_public_path__ + \"media/images/lp-sec-fts--create-e3cbcf392719922ceb1982a682bcf0ad.jpg\";","module.exports = __webpack_public_path__ + \"media/images/lp-sec-fts--search-317e2b372871ec9f2bfd7d1ca80a1596.jpg\";","module.exports = __webpack_public_path__ + \"media/images/lp-sec-fts--shindan-da24142c9611be92a550f1b96cf45217.png\";","module.exports = __webpack_public_path__ + \"media/images/lp-sec-fts--study-94baebebc70474569fd2c860de752092.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail-bnr-ad2f4b4d3d0aced997dc6752b57175c7.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/arrow26-70d93ff19dd8ff016821b2853246d493.png\";","module.exports = __webpack_public_path__ + \"media/images/mail/arrow32-4ae8e18cc91ff1c5e41b4c673a28907a.png\";","module.exports = __webpack_public_path__ + \"media/images/mail/banner217-02d039793b98404457989e2a3e7a2014.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/button350-4fc9db03e1d8c301f9234d7b8b8bc1fa.png\";","module.exports = __webpack_public_path__ + \"media/images/mail/button600-7cb3a908821b4308b2f9d3c74417deb9.png\";","module.exports = __webpack_public_path__ + \"media/images/mail/footer_logo-34b3bf2582d6e79eaea70bab05f5ddf2.png\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_04-cb93919c078c3ca1160a0c65fb4b1e48.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_05-1833f06ed42f93d5be9896542cd4d546.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_06-c89ecbe99632104a8a5a34d8d1bbd631.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_07-e36985cb979ffbd38857a523da628b62.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_08-9aee512ae525e903a7049ef9d4d7c9ef.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_09-f54b0c100863635031b50bc14766d208.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/spacer-6c618f4a33f6d26dc8dc477b22c1b9d6.gif\";","module.exports = __webpack_public_path__ + \"media/images/mail_step_1-6cffad5984289b0d95dc7086bd0c4575.png\";","module.exports = __webpack_public_path__ + \"media/images/mail_step_2-c012c55c407fcc1d4943f21b56749606.png\";","module.exports = __webpack_public_path__ + \"media/images/mail_step_3-a504ffd06bf9ab9c55ec750747eac059.png\";","module.exports = __webpack_public_path__ + \"media/images/mask--another-tab-36aaee40e2ddc301b1bf806f6fe533e9.svg\";","module.exports = __webpack_public_path__ + \"media/images/mask--chevron-down-d2f1eeec7b57927c6db58f958f1b94b1.svg\";","module.exports = __webpack_public_path__ + \"media/images/mask--chevron-right-df73f18d6dde66161d2cdbfa77f0eab0.svg\";","module.exports = __webpack_public_path__ + \"media/images/mask--login-85b83b0d43ebee800518196084fa5896.svg\";","module.exports = __webpack_public_path__ + \"media/images/mask--rising-arrow-5f8f7b075d8aaa1095288283c3437eb5.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit--bookmark-8cb92f6d9f6b40e2fbfa5d29f190bb0a.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit--favorite-a7f7ad8f7a2663cd5d1b30219ec85979.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit--illustration-1-9e25f356d68ea332b38bb66a6768f801.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit--illustration-2-fb4e3fa7fc49b02b4b30fc47c5ee7dc1.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit--mail-739e722c829a4f46e6778901c0c0e7ef.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit--search-afab31b08b03be85795abdc01728ae6a.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit--sogyokeikaku-bd88785d10519b642b723d098702af85.svg\";","module.exports = __webpack_public_path__ + \"media/images/member-merit_1-e3af07665f6f11a3a6a01df9360296d3.png\";","module.exports = __webpack_public_path__ + \"media/images/member-merit_2-d3fe933bb9ce3d8282328a85fd8e9a1d.png\";","module.exports = __webpack_public_path__ + \"media/images/member-merit_3-6be2292f73423d3ad232840556a478e6.png\";","module.exports = __webpack_public_path__ + \"media/images/member-merit_4-48089c5353450d9c533bdbcc729fd16f.png\";","module.exports = __webpack_public_path__ + \"media/images/member-merit_5-4c60326ed9e62c157af2014b1e57023b.png\";","module.exports = __webpack_public_path__ + \"media/images/member_step_1-2f9838a8f5be84c91e59c189cb63c548.png\";","module.exports = __webpack_public_path__ + \"media/images/member_step_2-6a49aee49959946156b63a670cb9e725.png\";","module.exports = __webpack_public_path__ + \"media/images/member_step_3-db838595fa0953543012241774c45a68.png\";","module.exports = __webpack_public_path__ + \"media/images/member_step_4-dbcfde53c9d3e98f04f99af12d5885ba.png\";","module.exports = __webpack_public_path__ + \"media/images/member_step_easy-0785ebee2f527385f5cb106b1d117f39.png\";","module.exports = __webpack_public_path__ + \"media/images/object--kirakira-82fe86b15bad475a086996d50945d53e.svg\";","module.exports = __webpack_public_path__ + \"media/images/object--recommend-01-64c5142aea907c8076d67845d4ee1f96.svg\";","module.exports = __webpack_public_path__ + \"media/images/object--recommend-02-893707065bd9f67b9813c3ca00a24713.svg\";","module.exports = __webpack_public_path__ + \"media/images/object--recommend-03-1128f3ef85d9e79c6a29c17fe366945f.svg\";","module.exports = __webpack_public_path__ + \"media/images/object--recommend-mix-3c0c706df2ba27cdc0ea196971922753.png\";","module.exports = __webpack_public_path__ + \"media/images/object--salescopy-gadget-group-a12c59977e944604f8da251ef5adc68d.png\";","module.exports = __webpack_public_path__ + \"media/images/ogp-d2a58b8b71ff1a24423338fe6931e0a8.png\";","module.exports = __webpack_public_path__ + \"media/images/ornament--arrow--main-f5a0a9c7d69eaa740455fa88d80912d6.svg\";","module.exports = __webpack_public_path__ + \"media/images/ornament--blade-59c14c096d76055f8fa4f7ba35f472a1.svg\";","module.exports = __webpack_public_path__ + \"media/images/ornament--hexagon-042ea4169202e59bfe8f43c6d3e9c134.svg\";","module.exports = __webpack_public_path__ + \"media/images/ornament--hexagon--blue-9a5e5166ee5d4469c7218d0243b3a36f.svg\";","module.exports = __webpack_public_path__ + \"media/images/ornament--hexagon--xs-8439722ab4b44fc02f252fdeb05e0d16.svg\";","module.exports = __webpack_public_path__ + \"media/images/ornament--mark--main-99b9c396a1c8d3765aced8d8720bb282.svg\";","module.exports = __webpack_public_path__ + \"media/images/ornament--triangle--main-1195ad2602bcd2b12cff5c28ac377077.svg\";","module.exports = __webpack_public_path__ + \"media/images/ornament--wave-fd761d27cdabc77eaca57323cbe05047.svg\";","module.exports = __webpack_public_path__ + \"media/images/pagination-switch--next-f68b23803f28932d4858b706ad04d984.svg\";","module.exports = __webpack_public_path__ + \"media/images/pagination-switch--next--disabled-9362c926585e5a0a341600a6d4fb0b16.svg\";","module.exports = __webpack_public_path__ + \"media/images/pagination-switch--next--sb-0664198a606f9902647fe2a703cebc42.svg\";","module.exports = __webpack_public_path__ + \"media/images/pagination-switch--prev-d34cea5061b451658f5de30085935ee8.svg\";","module.exports = __webpack_public_path__ + \"media/images/pagination-switch--prev--disabled-d0b9dc79cf5c5f61b817d707cd81e998.svg\";","module.exports = __webpack_public_path__ + \"media/images/pagination-switch--prev--sb-6edd860eba9856d102cd5e4303fcd459.svg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-genkinshushi-493e79586dc567e94891b0ae204b306a.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-01-f39cf8b4f42d2ef4575b082f6d5a7e01.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-02-a4cdee0453f207a73001e5de86ccefa0.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-03-7d27a2c0abd22b070678066bf8f2e2a8.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-04-8d36b5b4244f2dec8c9ece0764746af5.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-05-c35bba71b7acccb46912289e2c8a3a90.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-06-e8fe73c0a8039de4464c42257283dabe.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-07-0b8db9e25b9a11451d85c1312ee6f4b1.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-08-67ed4ab39a99c5137da2006db5c652fe.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-related-09-b3246af1746dd8554320ea0bf0a6cb77.jpg\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-sogyo-01-d8a594b4213d36a599b9ea6af65058ac.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-sogyo-02-9dffc24570659df06782828fcf9bdbf5.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-sogyo-03-7cb0d1ddf5867b32265fccfd33520240.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-sogyo-04-34a9227e9b76b2cd328999197cb8405d.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-suchi-01-8eb87bccbb4980cf44c5fb158f54187b.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-suchi-02-26c931360121e4ba029fc532b5903e8c.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-suchi-02-sp-b18c1228aea2316c0a18384f0920ded4.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-suchi-03-8cb65074b63055d584528c750b1be5fb.png\";","module.exports = __webpack_public_path__ + \"media/images/plan-lp-suchi-04-2eb74fc2f12b1394a3bd5f304fa25966.png\";","module.exports = __webpack_public_path__ + \"media/images/register-bnr-f66d119669164f71ca7f43a99a1abe48.jpg\";","module.exports = __webpack_public_path__ + \"media/images/search-ithojokin-bbaf8ef02ad9cdb7a3e8916046ed2eea.png\";","module.exports = __webpack_public_path__ + \"media/images/search-ithojokin-sp-bfedee48a43c8cee2390615cbc9101ce.png\";","module.exports = __webpack_public_path__ + \"media/images/select-form-ui-pair-1901c71ec8746036f0b768778226b5d9.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan-bnr-sp-62c1d4de48e75176b90ef665a9811217.jpg\";","module.exports = __webpack_public_path__ + \"media/images/shindan-result-top-580105bdfc54ce3ebc487c72f5d75a06.png\";","module.exports = __webpack_public_path__ + \"media/images/shindan_procedure_1-b0e240e854dc32b252061c23b0a6c915.png\";","module.exports = __webpack_public_path__ + \"media/images/shindan_procedure_2-1fe2ff44b54b95de64d630d22d6cfd7d.png\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q1-4e83aadef4a88dbcf9686290b77da0e7.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q1_sp-4c4b265d9e14c485bcd80151d22f8666.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q2-b7d0b30dfc793a6e212b208381f1a2f8.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q2_sp-b84b3dc8207fc9c05d8198bc48a2dc8e.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q3-aa4a2f74c3c67d55e48c60a9c8cbb0e0.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q3_sp-04aed94dea7e2ca3fea7e3de31355f6c.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q4-66bdcdb1f91a270ae62b2ee8634808c6.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q4_sp-2beb4df86110f9de60ade2329ec69a62.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q5-a21f0be900c55fc1c938d885d146b493.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_q5_sp-c6c978f9ce28c32921a3626864f22472.svg\";","module.exports = __webpack_public_path__ + \"media/images/shindan_specialist_1-50ed1b4f6936dba496a688d10f8f1391.png\";","module.exports = __webpack_public_path__ + \"media/images/shindan_specialist_2-493bfbbc2b5dc756ed4d372077919853.png\";","module.exports = __webpack_public_path__ + \"media/images/shindan_specialist_3-1e0ab90e9af70dacb7671cd1a714568c.png\";","module.exports = __webpack_public_path__ + \"media/images/shindan_top-291558cbff452f8be0926e9181422d8a.png\";","module.exports = __webpack_public_path__ + \"media/images/shindan_top_sp-3bbcff87cbf732c8be067f1338c35bc0.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--accountonline-7c05a2fddb578e27c579fe7d5b8c7aab.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--aoiroonline-de78125e2bd9dcd8165da9e27e4fcd23.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--campaign-upgrade-105262bb4037d0958edef4e4ab1fa654.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--default-dc75230f53e2d1c8a26f33ccdcb9e83b.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--default--type2-9bd1b18a4a0d1531fa1eaa18312c675d.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--itbanking-btob-6212949ca29f71ca06934b6eafdc8054.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--misoca-54d161246f9b703d83350284207aa6cd.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--shiroiroonline-388caf7d65da18b6d89ae138751b33bb.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--support-coronavirus-943da30dff3f75e132a9b04c048fd23c.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--versus-coronavirus-b3f3c57a77e85c5d3fc3c693452e0398.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--whitedeclaration-7ff7bfae23ca134b6fe2cf082f3f1003.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/banner--youtube-yayoichannel-a65596efd06d0ea675d5266cdd60a8de.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--account-32d6f596a271ff3dd8c95c51a4fc38a2.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--base-knowledge-of-working-capital-cfc643e8b16bd0caee95ee088602d4d8.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--calctax-53341cccb5100464f076884d89a1cf98.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--consult-expert-bc02812f8a6b3aa75c0c4b1df4094c11.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--entrenavi-c794a7bf861f4c6743733a5c414f4d93.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--foundation-d5e751aee04ccabade410104c6adc1fe.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--ftrguide-1551090461d4cd2a26b6231a57059fd9.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--hojyokin-kihon-773f9359e3ba0b3b39979531edbaf7b8.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--kaigyoutodoke-86728acb0c34908b73a18629c4013eb3.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--kariire-kihon-90e6647b43114a7a4ad8d66213b95963.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--kigyouline-5f83d65afb2d17cfb254c9ca916bdefe.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--m-and-a-09d4d2d1da13a350d9b1845a355c19b7.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--misoca-dd2c26e9c11e42578c4e51e7f1b66491.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--nintei-shien-kikan-05846cf841a5586488a164e7d61743d9.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--online-yuushi-35132997db8d96aceb06c110d67c9ccf.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--reschedule-2aecba2f39b4d9eae594bf2f11a5200c.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--seidoyuushi-c05f7898376813a76211d46135e421c1.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--shikin-manabu-cc98e965d1da6e7f98b3e6c5651fa3b0.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--shinkoku-ol-e953fbf1f410d18940319f4e210d3f99.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--shinyouhosyoukyoukai-34577a7df088513c9ee3d0ae1f4f2d7d.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--sumoviva-4672cff0bf37c905db06fcca22d73b5f.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--sumoviva-01-58386af8fc79116cce18f4226cbc09d6.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--sumoviva-02-0f80c948785e1ef10c0a97e260cd849a.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--sumoviva-03-d28aff6c0cad6ae0769c7f33e05c0494.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--teleworking-264a30e6ee0f0f6268d5f5025410460e.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--yahouonline-b7cc317a6399d49c631f09c1c1f747a9.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--yayoianshinma-fcc2fbbcd05e9881cf0d13b81f2e46a3.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--yokisenujitai-a39e609dfcfb3f713a725d6e4b4c61ea.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--youtube-yayoichannel-8dfdaab588427c401dd181afeaf00a33.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--zeirishi-shien-73bead42dc8ab23cedd083e52f615f65.jpg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/bnr--sq--zeirishi-shokai-950cf66789fd9a76b578d1057d67e020.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/illust--yayoikaikei-5ce19864682010c4e4b42ba35c8965fe.png\";","module.exports = __webpack_public_path__ + \"media/images/sidebar/sogyokeikaku-banner-8d0cf6121593b4acb5fc3685a33b43a0.png\";","module.exports = __webpack_public_path__ + \"media/images/sogyosuchikeikaku-judgement-d5ebfbba8e17ec8ad5011bfc7f4f1fdd.png\";","module.exports = __webpack_public_path__ + \"media/images/sogyosuchikeikaku-plan-1fbf28427a1cfbbe17ebcd93a3b21a5a.png\";","module.exports = __webpack_public_path__ + \"media/images/sougyokeikaku-excel-8c36839dbe76c37db6a0a2c217c50efb.png\";","module.exports = __webpack_public_path__ + \"media/images/sprite-general-388b85ce8eb519fa794a63ff1d5f942a.png\";","module.exports = __webpack_public_path__ + \"media/images/suchi-banner-middle-a997f1528215f03716f57a24a32388e2.jpg\";","module.exports = __webpack_public_path__ + \"media/images/suchi-banner-small-2f5add09a7cd67b59d4994ff73cfed1e.png\";","module.exports = __webpack_public_path__ + \"media/images/suuchi-banner-33d8d6ef2911086195bd1458a73cbc33.svg\";","module.exports = __webpack_public_path__ + \"media/images/suuchi-phone-96f06370682c9e14f7b1532d3849bf42.png\";","module.exports = __webpack_public_path__ + \"media/images/tag--yayoi-data-support-534e98a9f1f0500ca6ce55b8fb20e697.svg\";","module.exports = __webpack_public_path__ + \"media/images/top-fv--mv-f4afc67ee485ac1091bc5c60f3e15bb9.svg\";","module.exports = __webpack_public_path__ + \"media/images/top-useful-situations-1-23d0ee909de0d808f254304caa11928a.svg\";","module.exports = __webpack_public_path__ + \"media/images/top-useful-situations-2-245d921856cc843e3fbf9801014b2b0d.svg\";","module.exports = __webpack_public_path__ + \"media/images/top-useful-situations-3-231b89f27d8e79d82245059dc9e86aca.svg\";","module.exports = __webpack_public_path__ + \"media/images/top-useful-situations-4-84ce36a0d878752f9eedf5b87482a70f.svg\";","module.exports = __webpack_public_path__ + \"media/images/wave-0f8f6c732653ee09d4a73509094d72c8.png\";","module.exports = __webpack_public_path__ + \"media/images/wave_registered-41eebc21474f712bb62d7a592a5e448e.png\";","module.exports = __webpack_public_path__ + \"media/images/wave_sp-ad05bcf1005b41ec7d033a6a855acc9f.png\";","module.exports = __webpack_public_path__ + \"media/images/wave_white-2f0929a3ac3021c6a2b533e67d76e676.png\";","/*\ntry {\n  let sales1 = 0;\n  let sales2 = 0;\n  let sales3 = 0;\n  let cost1 = 0;\n  let cost2 = 0;\n  let cost3 = 0;\n  let benefit1 = 0;\n  let benefit2 = 0;\n  let benefit3 = 0;\n\n  let suuchiShikin = 0;\n  let suuchiHiyou = 0;\n\n  const salesInput1 = document.getElementById(\"sales1\");\n  const salesInput2 = document.getElementById(\"sales2\");\n  const salesInput3 = document.getElementById(\"sales3\");\n  const costInputs1 = document.querySelectorAll(\".suuchiCost1\");\n  const costInputs2 = document.querySelectorAll(\".suuchiCost2\");\n  const costInputs3 = document.querySelectorAll(\".suuchiCost3\");\n  const benefitInput1 = document.getElementById(\"benefit1\");\n  const benefitInput2 = document.getElementById(\"benefit2\");\n  const benefitInput3 = document.getElementById(\"benefit3\");\n  const suuchiNumBtnSets = document.querySelectorAll(\".suuchi-numBtn\");\n  const shikinInputs = document.querySelectorAll(\".suuchiShikin\");\n  const hiyouInputs = document.querySelectorAll(\".suuchiHiyou\");\n\n  function handleSalesChange() {\n    sales1 = salesInput1.value ? parseInt(salesInput1.value, 10) : 0;\n    sales2 = salesInput2.value ? parseInt(salesInput2.value, 10) : 0;\n    sales3 = salesInput3.value ? parseInt(salesInput3.value, 10) : 0;\n  }\n  function handleBenefitChange() {\n    benefit1 = benefitInput1.value ? parseInt(benefitInput1.value, 10) : 0;\n    benefit2 = benefitInput2.value ? parseInt(benefitInput2.value, 10) : 0;\n    benefit3 = benefitInput3.value ? parseInt(benefitInput3.value, 10) : 0;\n  }\n  function handleCostChange() {\n    cost1 = 0;\n    cost2 = 0;\n    cost3 = 0;\n    costInputs1.forEach((input) => {\n      const inputValue = input.value ? parseInt(input.value, 10) : 0;\n      cost1 += inputValue;\n    });\n    costInputs2.forEach((input) => {\n      const inputValue = input.value ? parseInt(input.value, 10) : 0;\n      cost2 += inputValue;\n    });\n    costInputs3.forEach((input) => {\n      const inputValue = input.value ? parseInt(input.value, 10) : 0;\n      cost3 += inputValue;\n    });\n  }\n  function handleShikinChange() {\n    suuchiShikin = 0;\n    shikinInputs.forEach((input) => {\n      const inputValue = input.value ? parseInt(input.value, 10) : 0;\n      suuchiShikin += inputValue;\n    });\n  }\n  function handleHiyouChange() {\n    suuchiHiyou = 0;\n    hiyouInputs.forEach((input) => {\n      const inputValue = input.value ? parseInt(input.value, 10) : 0;\n      suuchiHiyou += inputValue;\n    });\n  }\n\n  function calcBenefit() {\n    benefitInput1.value = sales1 - cost1;\n    benefitInput2.value = sales2 - cost2;\n    benefitInput3.value = sales3 - cost3;\n    handleBenefitChange();\n  }\n\n  function calcCosts() {\n    if (cost1 !== 0) {\n      costInputs1.forEach((input) => {\n        const inputValue = input.value ? parseInt(input.value, 10) : 0;\n        const inputRatio = inputValue / cost1;\n        const newCost = sales1 - benefit1;\n        input.value = Math.round(newCost * inputRatio);\n      });\n    }\n    if (cost2 !== 0) {\n      costInputs2.forEach((input) => {\n        const inputValue = input.value ? parseInt(input.value, 10) : 0;\n        const inputRatio = inputValue / cost2;\n        const newCost = sales2 - benefit2;\n        input.value = Math.round(newCost * inputRatio);\n      });\n    }\n    if (cost3 !== 0) {\n      costInputs3.forEach((input) => {\n        const inputValue = input.value ? parseInt(input.value, 10) : 0;\n        const inputRatio = inputValue / cost3;\n        const newCost = sales3 - benefit3;\n        input.value = Math.round(newCost * inputRatio);\n      });\n    }\n    handleCostChange();\n  }\n\n  function setSimulationBar(\n    sales,\n    cost,\n    benefit,\n    barId,\n    salesId,\n    costId,\n    benefitId\n  ) {\n    const costRatio = (cost / sales) * 100;\n    const targetBar = document.querySelectorAll(`.${barId}`);\n    const salesPara = document.querySelectorAll(`.${salesId}`);\n    const costPara = document.querySelectorAll(`.${costId}`);\n    const benefitPara = document.querySelectorAll(`.${benefitId}`);\n    const minusCaution = document.getElementById(\"suuchiCaution\");\n    const cautionAreasKaigyou = document.querySelectorAll(\n      \".cautionAreaKaigyou\"\n    );\n    const cautionAreas1 = document.querySelectorAll(\".cautionArea1\");\n    const cautionAreas2 = document.querySelectorAll(\".cautionArea2\");\n    const cautionAreas3 = document.querySelectorAll(\".cautionArea3\");\n\n    targetBar.forEach((element) => {\n      element.style.width = `${costRatio}%`;\n      if (benefit < 0) {\n        element.style.width = \"100%\";\n        element.style.backgroundColor = \"#FF2E00\";\n      } else {\n        element.style.width = `${costRatio}%`;\n        element.style.backgroundColor = \"#edf2f9\";\n      }\n    });\n\n    salesPara.forEach((element) => (element.textContent = sales));\n    costPara.forEach((element) => (element.textContent = cost));\n    benefitPara.forEach((element) => (element.textContent = benefit));\n\n    if (suuchiShikin - suuchiHiyou < 0) {\n      cautionAreasKaigyou.forEach(\n        (element) => (element.style.color = \"#FF2E00\")\n      );\n    } else {\n      cautionAreasKaigyou.forEach(\n        (element) => (element.style.color = \"#436fc0\")\n      );\n    }\n    if (benefit1 < 0) {\n      cautionAreas1.forEach((element) => (element.style.color = \"#FF2E00\"));\n    } else {\n      cautionAreas1.forEach((element) => (element.style.color = \"#436fc0\"));\n    }\n    if (benefit2 < 0) {\n      cautionAreas2.forEach((element) => (element.style.color = \"#FF2E00\"));\n    } else {\n      cautionAreas2.forEach((element) => (element.style.color = \"#436fc0\"));\n    }\n    if (benefit3 < 0) {\n      cautionAreas3.forEach((element) => (element.style.color = \"#FF2E00\"));\n    } else {\n      cautionAreas3.forEach((element) => (element.style.color = \"#436fc0\"));\n    }\n\n    if (\n      suuchiShikin - suuchiHiyou < 0 ||\n      benefit1 < 0 ||\n      benefit2 < 0 ||\n      benefit3 < 0\n    ) {\n      minusCaution.classList.add(\"display\");\n    } else {\n      minusCaution.classList.remove(\"display\");\n    }\n  }\n\n  salesInput1.addEventListener(\"change\", function () {\n    handleSalesChange();\n    calcBenefit();\n    setSimulationBar(\n      sales1,\n      cost1,\n      benefit1,\n      \"suuchiBar1\",\n      \"suuchiSalesDisplay1\",\n      \"suuchiCostDisplay1\",\n      \"suuchiBenefitDisplay1\"\n    );\n  });\n  salesInput2.addEventListener(\"change\", function () {\n    handleSalesChange();\n    calcBenefit();\n    setSimulationBar(\n      sales2,\n      cost2,\n      benefit2,\n      \"suuchiBar2\",\n      \"suuchiSalesDisplay2\",\n      \"suuchiCostDisplay2\",\n      \"suuchiBenefitDisplay2\"\n    );\n  });\n  salesInput3.addEventListener(\"change\", function () {\n    handleSalesChange();\n    calcBenefit();\n    setSimulationBar(\n      sales3,\n      cost3,\n      benefit3,\n      \"suuchiBar3\",\n      \"suuchiSalesDisplay3\",\n      \"suuchiCostDisplay3\",\n      \"suuchiBenefitDisplay3\"\n    );\n  });\n  benefitInput1.addEventListener(\"change\", function () {\n    handleBenefitChange();\n    calcCosts();\n    setSimulationBar(\n      sales1,\n      cost1,\n      benefit1,\n      \"suuchiBar1\",\n      \"suuchiSalesDisplay1\",\n      \"suuchiCostDisplay1\",\n      \"suuchiBenefitDisplay1\"\n    );\n  });\n  benefitInput2.addEventListener(\"change\", function () {\n    handleBenefitChange();\n    calcCosts();\n    setSimulationBar(\n      sales2,\n      cost2,\n      benefit2,\n      \"suuchiBar2\",\n      \"suuchiSalesDisplay2\",\n      \"suuchiCostDisplay2\",\n      \"suuchiBenefitDisplay2\"\n    );\n  });\n  benefitInput3.addEventListener(\"change\", function () {\n    handleBenefitChange();\n    calcCosts();\n    setSimulationBar(\n      sales3,\n      cost3,\n      benefit3,\n      \"suuchiBar3\",\n      \"suuchiSalesDisplay3\",\n      \"suuchiCostDisplay3\",\n      \"suuchiBenefitDisplay3\"\n    );\n  });\n  costInputs1.forEach((input) => {\n    input.addEventListener(\"change\", function () {\n      handleCostChange();\n      calcBenefit();\n      setSimulationBar(\n        sales1,\n        cost1,\n        benefit1,\n        \"suuchiBar1\",\n        \"suuchiSalesDisplay1\",\n        \"suuchiCostDisplay1\",\n        \"suuchiBenefitDisplay1\"\n      );\n    });\n  });\n  costInputs2.forEach((input) => {\n    input.addEventListener(\"change\", function () {\n      handleCostChange();\n      calcBenefit();\n      setSimulationBar(\n        sales2,\n        cost2,\n        benefit2,\n        \"suuchiBar2\",\n        \"suuchiSalesDisplay2\",\n        \"suuchiCostDisplay2\",\n        \"suuchiBenefitDisplay2\"\n      );\n    });\n  });\n  costInputs3.forEach((input) => {\n    input.addEventListener(\"change\", function () {\n      handleCostChange();\n      calcBenefit();\n      setSimulationBar(\n        sales3,\n        cost3,\n        benefit3,\n        \"suuchiBar3\",\n        \"suuchiSalesDisplay3\",\n        \"suuchiCostDisplay3\",\n        \"suuchiBenefitDisplay3\"\n      );\n    });\n  });\n  shikinInputs.forEach((input) => {\n    input.addEventListener(\"change\", function () {\n      handleShikinChange();\n      setSimulationBar(\n        suuchiShikin,\n        suuchiHiyou,\n        suuchiShikin - suuchiHiyou,\n        \"kaigyouBar\",\n        \"suuchiShikin\",\n        \"suuchiHiyou\",\n        \"suuchiShikinzan\"\n      );\n    });\n  });\n  hiyouInputs.forEach((input) => {\n    input.addEventListener(\"change\", function () {\n      handleHiyouChange();\n      setSimulationBar(\n        suuchiShikin,\n        suuchiHiyou,\n        suuchiShikin - suuchiHiyou,\n        \"kaigyouBar\",\n        \"suuchiShikin\",\n        \"suuchiHiyou\",\n        \"suuchiShikinzan\"\n      );\n    });\n  });\n\n  suuchiNumBtnSets.forEach((numBtnSet) => {\n    var suuchiInput = numBtnSet.querySelector(\".suuchiInput\");\n    var suuchiPlus = numBtnSet.querySelector(\".suuchiPlus\");\n    var suuchiMinus = numBtnSet.querySelector(\".suuchiMinus\");\n\n    suuchiPlus.addEventListener(\"click\", function () {\n      handleSalesChange();\n      handleBenefitChange();\n      handleCostChange();\n      handleShikinChange();\n      handleHiyouChange();\n      if (\n        suuchiInput.classList.contains(\"suuchiCost1\") ||\n        suuchiInput.classList.contains(\"suuchiCost2\") ||\n        suuchiInput.classList.contains(\"suuchiCost3\") ||\n        suuchiInput.id === \"sales1\" ||\n        suuchiInput.id === \"sales2\" ||\n        suuchiInput.id === \"sales3\"\n      ) {\n        calcBenefit();\n      } else if (\n        suuchiInput.id === \"benefit1\" ||\n        suuchiInput.id === \"benefit2\" ||\n        suuchiInput.id === \"benefit3\"\n      ) {\n        calcCosts();\n      }\n      setSimulationBar(\n        sales1,\n        cost1,\n        benefit1,\n        \"suuchiBar1\",\n        \"suuchiSalesDisplay1\",\n        \"suuchiCostDisplay1\",\n        \"suuchiBenefitDisplay1\"\n      );\n      setSimulationBar(\n        sales2,\n        cost2,\n        benefit2,\n        \"suuchiBar2\",\n        \"suuchiSalesDisplay2\",\n        \"suuchiCostDisplay2\",\n        \"suuchiBenefitDisplay2\"\n      );\n      setSimulationBar(\n        sales3,\n        cost3,\n        benefit3,\n        \"suuchiBar3\",\n        \"suuchiSalesDisplay3\",\n        \"suuchiCostDisplay3\",\n        \"suuchiBenefitDisplay3\"\n      );\n      setSimulationBar(\n        suuchiShikin,\n        suuchiHiyou,\n        suuchiShikin - suuchiHiyou,\n        \"kaigyouBar\",\n        \"suuchiShikin\",\n        \"suuchiHiyou\",\n        \"suuchiShikinzan\"\n      );\n    });\n    suuchiMinus.addEventListener(\"click\", function () {\n      handleSalesChange();\n      handleBenefitChange();\n      handleCostChange();\n      handleShikinChange();\n      handleHiyouChange();\n      if (\n        suuchiInput.classList.contains(\"suuchiCost1\") ||\n        suuchiInput.classList.contains(\"suuchiCost2\") ||\n        suuchiInput.classList.contains(\"suuchiCost3\") ||\n        suuchiInput.id === \"sales1\" ||\n        suuchiInput.id === \"sales2\" ||\n        suuchiInput.id === \"sales3\"\n      ) {\n        calcBenefit();\n      } else if (\n        suuchiInput.id === \"benefit1\" ||\n        suuchiInput.id === \"benefit2\" ||\n        suuchiInput.id === \"benefit3\"\n      ) {\n        calcCosts();\n      }\n      setSimulationBar(\n        sales1,\n        cost1,\n        benefit1,\n        \"suuchiBar1\",\n        \"suuchiSalesDisplay1\",\n        \"suuchiCostDisplay1\",\n        \"suuchiBenefitDisplay1\"\n      );\n      setSimulationBar(\n        sales2,\n        cost2,\n        benefit2,\n        \"suuchiBar2\",\n        \"suuchiSalesDisplay2\",\n        \"suuchiCostDisplay2\",\n        \"suuchiBenefitDisplay2\"\n      );\n      setSimulationBar(\n        sales3,\n        cost3,\n        benefit3,\n        \"suuchiBar3\",\n        \"suuchiSalesDisplay3\",\n        \"suuchiCostDisplay3\",\n        \"suuchiBenefitDisplay3\"\n      );\n      setSimulationBar(\n        suuchiShikin,\n        suuchiHiyou,\n        suuchiShikin - suuchiHiyou,\n        \"kaigyouBar\",\n        \"suuchiShikin\",\n        \"suuchiHiyou\",\n        \"suuchiShikinzan\"\n      );\n    });\n  });\n} catch (error) {\n  console.warn(\"このページには数値ボタンはありません\" + error);\n}\n*/\n\n//スクロールによるグラフ表示・非表示\ntry {\n  const suuchiGraph = document.getElementById(\"suuchiGraph\");\n  const suuchiGraphScroll = document.getElementById(\"suuchiGraphScroll\");\n\n  window.onscroll = function () {\n    let scrollY = window.scrollY;\n    if (suuchiGraph && suuchiGraphScroll) {\n      if (scrollY > 400) {\n        suuchiGraph.style.display = \"none\";\n        suuchiGraphScroll.style.display = \"block\";\n      } else {\n        suuchiGraph.style.display = \"block\";\n        suuchiGraphScroll.style.display = \"none\";\n      }\n    }\n  };\n} catch (error) {\n  console.warn(\"このページにはグラフはありません\" + error);\n}\n\nexport function handleKaigyoShikinSetSimulationBar(kaigyoShikin, kaigyoHiyo, kaigyoShikinZan) {\n  const profit1y = null;\n  const profit2y = null;\n  const profit3y = null;\n\n  // 開業資金・開業費用\n  setSimulationBar(\n    kaigyoShikin,\n    kaigyoHiyo,\n    kaigyoShikinZan,\n    \"kaigyouBar\",\n    \"suuchiShikin\",\n    \"suuchiHiyou\",\n    \"suuchiShikinzan\",\n    kaigyoShikin,\n    kaigyoHiyo,\n    profit1y,\n    profit2y,\n    profit3y\n  );\n}\n\nexport function handleUntenShikinSetSimulationBar(\n  sales1y, sales2y, sales3y,\n  cost1y, cost2y, cost3y,\n  profit1y, profit2y, profit3y\n) {\n  const kaigyoShikin = null;\n  const kaigyoHiyo = null;\n\n  // 売上・運転資金 1年目\n  setSimulationBar(\n    sales1y,\n    cost1y,\n    profit1y,\n    \"suuchiBar1\",\n    \"suuchiSalesDisplay1\",\n    \"suuchiCostDisplay1\",\n    \"suuchiBenefitDisplay1\",\n    kaigyoShikin,\n    kaigyoHiyo,\n    profit1y,\n    profit2y,\n    profit3y\n  );\n\n  // 売上・運転資金 2年目\n  setSimulationBar(\n    sales2y,\n    cost2y,\n    profit2y,\n    \"suuchiBar2\",\n    \"suuchiSalesDisplay2\",\n    \"suuchiCostDisplay2\",\n    \"suuchiBenefitDisplay2\",\n    kaigyoShikin,\n    kaigyoHiyo,\n    profit1y,\n    profit2y,\n    profit3y\n  );\n\n  // 売上・運転資金 3年目\n  setSimulationBar(\n    sales3y,\n    cost3y,\n    profit3y,\n    \"suuchiBar3\",\n    \"suuchiSalesDisplay3\",\n    \"suuchiCostDisplay3\",\n    \"suuchiBenefitDisplay3\",\n    kaigyoShikin,\n    kaigyoHiyo,\n    profit1y,\n    profit2y,\n    profit3y\n  );\n}\n\nfunction setSimulationBar(\n  sales,\n  cost,\n  benefit,\n  barId,\n  salesId,\n  costId,\n  benefitId,\n  suuchiShikin,\n  suuchiHiyou,\n  benefit1,\n  benefit2,\n  benefit3\n) {\n  const costRatio = (cost / sales) * 100;\n  const targetBar = document.querySelectorAll(`.${barId}`);\n  const salesPara = document.querySelectorAll(`.${salesId}`);\n  const costPara = document.querySelectorAll(`.${costId}`);\n  const benefitPara = document.querySelectorAll(`.${benefitId}`);\n  const cautionAreasKaigyou = document.querySelectorAll(\n    \".cautionAreaKaigyou\"\n  );\n  const cautionAreas1 = document.querySelectorAll(\".cautionArea1\");\n  const cautionAreas2 = document.querySelectorAll(\".cautionArea2\");\n  const cautionAreas3 = document.querySelectorAll(\".cautionArea3\");\n\n  targetBar.forEach((element) => {\n    element.style.width = `${costRatio}%`;\n    if (benefit < 0) {\n      element.style.width = \"100%\";\n      element.style.backgroundColor = \"#FF2E00\";\n    } else {\n      element.style.width = `${costRatio}%`;\n      element.style.backgroundColor = \"#edf2f9\";\n    }\n  });\n\n  salesPara.forEach((element) => (element.textContent = sales.toLocaleString('ja-JP')));\n  costPara.forEach((element) => (element.textContent = cost.toLocaleString('ja-JP')));\n  benefitPara.forEach((element) => (element.textContent = benefit.toLocaleString('ja-JP')));\n\n  if (suuchiShikin != null && suuchiHiyou != null) {\n    if (suuchiShikin - suuchiHiyou < 0) {\n      cautionAreasKaigyou.forEach(\n        (element) => (element.style.color = \"#FF2E00\")\n      );\n    } else {\n      cautionAreasKaigyou.forEach(\n        (element) => (element.style.color = \"#436fc0\")\n      );\n    }\n  }\n\n  if (benefit1 != null) {\n    if (benefit1 < 0) {\n      cautionAreas1.forEach((element) => (element.style.color = \"#FF2E00\"));\n    } else {\n      cautionAreas1.forEach((element) => (element.style.color = \"#436fc0\"));\n    }\n  }\n  if (benefit2 != null) {\n    if (benefit2 < 0) {\n      cautionAreas2.forEach((element) => (element.style.color = \"#FF2E00\"));\n    } else {\n      cautionAreas2.forEach((element) => (element.style.color = \"#436fc0\"));\n    }\n  }\n  if (benefit3 != null) {\n    if (benefit3 < 0) {\n      cautionAreas3.forEach((element) => (element.style.color = \"#FF2E00\"));\n    } else {\n      cautionAreas3.forEach((element) => (element.style.color = \"#436fc0\"));\n    }\n  }\n}\n","//* 【共通】 ---------------------- *\n//* top へ戻る ---------------------- *\n$(function() {\n  const $backToTop = $(\"#scrollTop\");\n\n  if ($backToTop.length) {\n    $(window).on(\"scroll\", function () {\n      if ($(this).scrollTop() > 100) {\n        $backToTop.fadeIn('fast');\n      } else {\n        $backToTop.fadeOut('fast');\n      }\n    });\n\n    $backToTop.on(\"click\" , function () {\n      $('body,html').animate({\n        scrollTop: 0\n      }, 100);\n      return false;\n    });\n\n    $(window).on(\"load resize\", function() {\n      $(window).trigger(\"scroll\");\n    });\n  }\n});\n\n// お知らせ一覧のiframeの高さをload, resize時に取得する\nfunction getIframeHeight () {\n  try {\n      const getHeight = () => {\n        $('#news-frame').height(0);\n        $('#news-frame').height($('#news-frame').get(0).contentWindow.document.documentElement.scrollHeight);\n      }\n      setTimeout(getHeight, 10);\n    } catch (e) {\n  }\n}\n$('#news-frame').on('load', function(){\n  getIframeHeight();\n});\n$(window).on('resize', function(){\n  if ($('#news-frame').length) {\n    getIframeHeight();\n  }\n});\n\n// 固定フッターの高さをカスタムプロパティにセットする\nconst fixedFooter = document.getElementsByClassName('js-fixed-footer')[0];\nif (fixedFooter) {\n  function setCustomPropertyFixedFooterHeight() {\n    const fixedFooterHeight = fixedFooter.offsetHeight;\n    document.documentElement.style.setProperty('--js-site-fixed-footer-height', fixedFooterHeight + 'px');\n  }\n  window.addEventListener('DOMContentLoaded', setCustomPropertyFixedFooterHeight);\n  window.addEventListener('resize', setCustomPropertyFixedFooterHeight);\n}\n\n//* 【事業者画面】 ---------------------- *\n//* top メニュー ---------------------- *\n/* リサイズ時、メニュー(toggle)を元に戻す挙動 */\n$(window).on(\"resize\", function(){\n  $('#mainmenuNav').removeClass(\"collapse\");\n});\n/* オーバーレイ部分クリック時、メニュー(toggle)を元に戻す挙動 */\n$('#mainmenuOverlay').on(\"click\" , function() {\n  $('#mainmenuNav').removeClass(\"collapse\");\n});\n\n//* 追従メニュー(PC) ---------------------- *\n$(function() {\n  $('#chaseMenu').hide();\n  $(window).on(\"scroll\", function () {\n    if ($(this).scrollTop() > 550) {\n      $('#chaseMenu').fadeIn('fast');\n    } else {\n      $('#chaseMenu').fadeOut('fast');\n    }\n  });\n  $('#m-chasemenu__button--detailsearch').on(\"click\" , function() {\n    $('#mainmenuNav').removeClass(\"show\");\n    $('#mainmenuToggler').attr({'aria-expanded' : 'false'});\n    if($('#controller-detailsearch').hasClass(\"ds-open\")){\n      $('#controller-detailsearch').removeClass(\"ds-open\").toggleClass(\"ds-open\");\n    }else{\n      $('#controller-detailsearch').toggleClass(\"ds-open\");\n    }\n    $('body,html').animate({\n      scrollTop: 0\n    }, 100);\n    return false;\n  });\n});\n\n//* 追従メニュー(モバイル) ---------------------- *\n$(function() {\n  $('#chaseMenuSmp').hide();\n  $('#chaseFooterSp').hide();\n  $(window).on(\"scroll\", function () {\n    if ($(this).scrollTop() > 100) {\n      $('#chaseMenuSmp').fadeIn('fast');\n      $('#chaseFooterSp').fadeIn('fast');\n    } else {\n      $('#chaseMenuSmp').fadeOut('fast');\n      $('#chaseFooterSp').fadeOut('fast');\n    }\n  });\n  $('#m-chasemenu--smp__button--detailsearch').on(\"click\" , function() {\n    $('#mainmenuNav').removeClass(\"show\");\n    $('#mainmenuToggler').attr({'aria-expanded' : 'false'});\n    if($('#controller-detailsearch').hasClass(\"ds-open\")){\n      $('#controller-detailsearch').removeClass(\"ds-open\").toggleClass(\"ds-open\");\n    }else{\n      $('#controller-detailsearch').toggleClass(\"ds-open\");\n    }\n    $('body,html').animate({\n      scrollTop: 0\n    }, 100);\n    return false;\n  });\n  $('#m-chasemenu--ipad__button--detailsearch').on(\"click\" , function() {\n    $('#mainmenuNav').removeClass(\"show\");\n    $('#mainmenuToggler').attr({'aria-expanded' : 'false'});\n    if($('#controller-detailsearch').hasClass(\"ds-open\")){\n      $('#controller-detailsearch').removeClass(\"ds-open\").toggleClass(\"ds-open\");\n    }else{\n      $('#controller-detailsearch').toggleClass(\"ds-open\");\n    }\n    $('body,html').animate({\n      scrollTop: 0\n    }, 100);\n    return false;\n  });\n});\n\n// ファーストビュー(事業者画面)・「地域」のセレクトチェックボックス始動\n$('.m-checkbox-ex__select-form').on(\"click\" , function() {\n  $(this).parent('.m-checkbox-ex').toggleClass(\"open\");\n});\n// ファーストビュー(事業者画面)・「地域」のセレクトチェックボックス外をクリックした場合に初期状態に戻す\n$(document).on(\"click\" ,function (e) {\n  var container = $('.m-checkbox-ex');\n  if (container.has(e.target).length === 0)\n  {\n    container.removeClass(\"open\");\n  }\n});\n\n// ファーストビュー(事業者画面)・「事業形態」のセレクトボックス始動\n$(\"select\").on(\"click\" , function() {\n  $(this).parent('.main-firstview__selectiveobj').toggleClass(\"open\");\n});\n// ファーストビュー(事業者画面)・「事業形態」のセレクトボックスセレクト連動\n$(\".business-type\").on(\"change\" , function() {\n  var selection = $(this).find(\"option:selected\").text();\n  $('.main-firstview__selected').html(selection);\n});\n// ページ描画時に選択済みの事業形態をラベルに反映する\n$(function() {\n  var selectedText = $('.main-firstview__choices.business-type option:selected').text();\n  $('.main-firstview__selected').text(selectedText);\n  // 初期値が入っている場合、セレクトボックスの色を戻す\n  if($('.main-firstview__choices.business-type').val() !== \"\"){\n    $('.main-firstview__selected').removeClass('default');\n    $('.checkbox-ex--flat__select.business-type').removeClass('default');\n  }\n});\n$(function() {\n  var selectedText = $('.lp-fv-search .main-firstview__choices.business-type option:selected').text();\n  $('.lp-fv-search .main-firstview__selected').text(selectedText);\n  // 初期値が入っている場合、セレクトボックスの色を戻す\n  if($('.lp-fv-search .main-firstview__choices.business-type').val() !== \"\"){\n    $('.lp-fv-search .main-firstview__selected').removeClass('default');\n    $('.lp-fv-search .checkbox-ex--flat__select.business-type').removeClass('default');\n  }\n});\n$(function() {\n  var selectedText = $('.js-search_submit_button_submit_form_lp_1 .main-firstview__choices.business-type option:selected').text();\n  $('.js-search_submit_button_submit_form_lp_1 .main-firstview__selected').text(selectedText);\n  // 初期値が入っている場合、セレクトボックスの色を戻す\n  if($('.js-search_submit_button_submit_form_lp_1 .main-firstview__choices.business-type').val() !== \"\"){\n    $('.js-search_submit_button_submit_form_lp_1 .main-firstview__selected').removeClass('default');\n    $('.js-search_submit_button_submit_form_lp_1 .checkbox-ex--flat__select.business-type').removeClass('default');\n  }\n});\n$(function() {\n  var selectedText = $('.js-search_submit_button_submit_form_lp_2 .main-firstview__choices.business-type option:selected').text();\n  $('.js-search_submit_button_submit_form_lp_2 .main-firstview__selected').text(selectedText);\n  // 初期値が入っている場合、セレクトボックスの色を戻す\n  if($('.js-search_submit_button_submit_form_lp_2 .main-firstview__choices.business-type').val() !== \"\"){\n    $('.js-search_submit_button_submit_form_lp_2 .main-firstview__selected').removeClass('default');\n    $('.js-search_submit_button_submit_form_lp_2 .checkbox-ex--flat__select.business-type').removeClass('default');\n  }\n});\n// ページ描画時に従業員数、業種、継続年数、資本金額、希望金額に初期値があった場合にセレクトボックスの色を戻す\n$(function() {\n  $('select.checkbox-ex--flat__select').each(function(){\n    if ($(this).val() !== \"\"){\n      $(this).removeClass('default');\n    }\n  });\n});\n// ファーストビュー(事業者画面)・「事業形態」のセレクトチェックボックス外をクリックした場合に初期状態に戻す\n$(document).on(\"click\" ,function (e) {\n  var container = $('.main-firstview__selectiveobj');\n  if (container.has(e.target).length === 0)\n  {\n    container.removeClass(\"open\");\n  }\n});\n\n// ファーストビュー(事業者画面)の詳細検索始動\n$('#result-detailsearch').on(\"click\" , function() {\n  $('#controller-detailsearch').addClass(\"ds-open\");\n});\n\n// セレクトチェックボックス始動\n$('.checkbox-ex__select-form').on(\"click\" , function() {\n  //('[class^=checkbox-ex]').removeClass(\"open\");\n  if($('[class^=checkbox-ex]').hasClass(\"open\")){\n    $('[class^=checkbox-ex]').removeClass(\"open\");\n  }else{\n    $(this).parent('[class^=checkbox-ex]').toggleClass(\"open\");\n  }\n});\n// セレクトチェックボックス外をクリックした場合に初期状態に戻す\n$(document).on(\"click\" ,function (e) {\n  var container = $('[class^=checkbox-ex]');\n  if (container.has(e.target).length === 0)\n  {\n    container.removeClass(\"open\");\n  }\n});\n// 他のセレクトボックスを開いた時にセレクトボックスチェックボックスを閉じる\n$('.checkbox-ex--flat__select').on('click', function (e) {\n  $('[class^=checkbox-ex]').removeClass(\"open\");\n});\n\n// 詳細検索画面の「事業形態」・「従業員数」・「業種」・「継続年数」・「資本金額」・「希望金額」・「課題・資金使途」を選択した場合にデフォルト(class=\"default\")を動かす\n$('.checkbox-ex--flat__select').on('change', function (e) {\n  if ($(this).val() !== \"\"){\n    $(this).removeClass(\"default\");\n  } else {\n    $(this).addClass(\"default\");\n  }\n});\n\n// 絞り込み検索フィールドのメインで使われていない項目に一つでも初期値がセットされている場合、\n// 画面描画時に絞り込み検索フィールドを表示した状態にする\n$(function() {\n  var isDefaultValueSet = hasInputValue();\n  var isDetailSearch = $('#is_detail_search').val();\n  // 画面サイズが768pxより小さい場合は表示しない\n  var windowWidth = $(window).width();\n  if ((isDefaultValueSet || isDetailSearch === 'true') && windowWidth >= 768) {\n    $('#controller-detailsearch').toggleClass(\"ds-open\");\n  }\n});\n\n$('.controller-upload__button--delete').on('click', function (e) {\n  var url = location.href\n  if (url.match(/new/)) {\n    window.location.href = url;\n  } else {\n    window.location.href = url + \"/new\";\n  }\n});\n\n// 事業形態がon change時の挙動\n$('#detail_search_q_anken_business_type_cd').on('change', function() {\n  businessTypeValidation($(this));\n});\n// ロード時の事業形態の挙動\n$(function() {\n  if ($('#detail_search_q_anken_business_type_cd').length) {\n    businessTypeValidation($('#detail_search_q_anken_business_type_cd'));\n  }\n});\n\nfunction businessTypeValidation (element) {\n  // 事業形態が「創業前」の時、「従業員数」と「継続年数」を非活性状態とする\n  if (element.val() === \"創業前\") {\n    $('#q_anken_employee_number').val(\"\").addClass(\"default\").prop('disabled', true);\n    $('#q_anken_business_period_cd').val(\"\").addClass(\"default\").prop('disabled', true);\n    $('#mainSearchConditionEmployeeNumberSelect').val(\"\").prop('disabled', true);\n    $('#mainSearchConditionBusinessPeriodCdSelect').val(\"\").prop('disabled', true);\n  } else {\n    $('#q_anken_employee_number').prop('disabled', false);\n    $('#q_anken_business_period_cd').prop('disabled', false);\n    $('#mainSearchConditionEmployeeNumberSelect').prop('disabled', false);\n    $('#mainSearchConditionBusinessPeriodCdSelect').prop('disabled', false);\n  }\n  // 事業形態が「法人」または初期値以外の場合、「資本金額」を非活性状態とする\n  if (element.val() === \"法人\" || element.val() === \"\") {\n    $('#q_anken_capital_amount').prop('disabled', false);\n    $('#mainSearchConditionCapitalAmountSelect').prop('disabled', false);\n  } else {\n    $('#q_anken_capital_amount').val(\"\").addClass(\"default\").prop('disabled', true);\n    $('#mainSearchConditionCapitalAmountSelect').val(\"\").prop('disabled', true);\n  }\n\n  $('#mainSearchConditionEmployeeNumberSelect').trigger('change');\n  $('#mainSearchConditionBusinessPeriodCdSelect').trigger('change');\n  $('#mainSearchConditionCapitalAmountSelect').trigger('change');\n}\n\nexport function hasInputValue() {\n  var isDefaultValueSet = false;\n  // 地域(市区町村) checkedCitiesの配列にて判定\n  if (typeof checkedCities !== 'undefined' && checkedCities.length !== 0) {\n    isDefaultValueSet = true;\n  }\n  // 従業員数\n  if ($('#q_anken_employee_number').val()) {\n    isDefaultValueSet = true;\n  }\n  // 業種分類\n  const industoryInputClassName = \".chex-ind\"\n  var checkboxExIndustory = $(industoryInputClassName).first().closest(\".checkbox-ex\");\n  if (checkboxExIndustory.find('input' + industoryInputClassName + ':checked').length) {\n    isDefaultValueSet = true;\n  }\n  // 継続年数\n  if ($('#q_anken_business_period_cd').val()) {\n    isDefaultValueSet = true;\n  }\n  // 資本金額\n  if ($('#q_anken_capital_amount').val()) {\n    isDefaultValueSet = true;\n  }\n  // 希望金額\n  if ($('#q_required_amount').val()) {\n    isDefaultValueSet = true;\n  }\n  // 課題・資金使途\n  const usageInputClassName = \".chex-use\";\n  var checkboxExUsage = $(usageInputClassName).first().closest(\".checkbox-ex--tags\");\n  if ($(checkboxExUsage).find('input' + usageInputClassName + ':checked').length) {\n    isDefaultValueSet = true;\n  }\n  // 訪問不要\n  if ($('input#q_anken_visit_required_unnecessary:checked').length) {\n    isDefaultValueSet = true;\n  }\n  // 担保提供可\n  if ($('input#q_tanpo_required_necessary_or_necessary_in_some_cases:checked').length) {\n    isDefaultValueSet = true;\n  }\n  // 弥生製品データ利用\n  if ($('input#q_is_yayoi_service_usable_usable:checked').length) {\n    isDefaultValueSet = true;\n  }\n  // 募集終了も含む\n  if ($('input#q_including_offering_expired:checked').length) {\n    isDefaultValueSet = true;\n  }\n  // フリーワード\n  if ($('#q_keyword').val()) {\n    isDefaultValueSet = true;\n  }\n  return isDefaultValueSet;\n}\n\n//詳細ページ(似た資金調達手段「さらに表示」)\n$(function() {\n  var moreNum = 10;\n  $('.m-detail__relation__column:nth-child(n + ' + (moreNum + 2) + ')').addClass('is-hidden');\n  $('.m-detail__relation__more').on('click', function() {\n    $('.m-detail__relation__column.is-hidden').slice(0, 10).removeClass('is-hidden');\n    if ($('.m-detail__relation__column.is-hidden').length == 0) {\n      $('.m-detail__relation__more').fadeOut();\n    }\n  });\n});\n\n//詳細ページ(似た資金調達手段「さらに表示」)スマホ画面\n$(function() {\n  var sp_moreNum = 5;\n  $('.m-detail__relation__sp-column:nth-child(n + ' + (sp_moreNum + 1) + ')').addClass('is-hidden');\n  $('.m-detail__relation__sp-more').on('click', function() {\n    $('.m-detail__relation__sp-column.is-hidden').slice(0, 15).removeClass('is-hidden');\n    if ($('.m-detail__relation__sp-column.is-hidden').length == 0) {\n      $('.m-detail__relation__sp-more').fadeOut();\n    }\n  });\n});\n\n// お気に入りボタン(各案件詳細ページの追従ボタン)\n$(function() {\n  $('#favoriteBtn').hide();\n  $(window).on(\"scroll\", function () {\n    if ($(this).scrollTop() > 100) {\n      $('#favoriteBtn').fadeIn('fast');\n    } else {\n      $('#favoriteBtn').fadeOut('fast');\n    }\n    var scrollHeight = $(document).height();\n    var scrollPosition = $(window).height() + $(window).scrollTop();\n    var footHeight = $('footer').innerHeight();\n    if (scrollHeight - scrollPosition <= footHeight) {\n      $('#favoriteBtn').css({\n        'position': 'absolute',\n        'bottom': '8rem',\n      });\n    } else {\n      $('#favoriteBtn').css({\n        'position': 'fixed',\n        'bottom': '11rem',\n      });\n    }\n  });\n});\n\n$(function(){\n  // ファーストビュー 検索結果数・現在の検索条件\n  $('#result-detailsearch').on('click', function(){\n    $('#detailsearch-box').slideDown();\n    $('#result-box').slideUp();\n  });\n});\n\n// 「課題・資金使途クリア」ボタンクリック時\n$('#clear_usage').on('click', function() {\n  $('.chex-use').prop('checked', false);\n  $('#after_reset_search_condition').trigger('click');\n});\n\n// 追従メニュー(さらに絞り込む) 詳細検索を表示\n$(function(){\n  $('#m-chasemenu__button--detailsearch').on('click', function(){\n    $('#controller-detailsearch').addClass(\"ds-open\");\n    $('#result-box').slideUp();\n    $('#detailsearch-box').slideDown();\n  });\n});\n\n// 追従フッター 似た資金調達手段\n$(function(){\n  $('#chase_footer_related, #chase_footer_related_ipad, #chase_footer_related_sp').on('click', function(){\n    const relatedTop = $('#related').offset().top;\n    $(\"body,html\").animate({scrollTop: relatedTop});\n  });\n});","var map = {\n\t\"./Sougyokeikakusyo\": 27,\n\t\"./Sougyokeikakusyo.png\": 27,\n\t\"./Suuchikeikakusyo\": 28,\n\t\"./Suuchikeikakusyo.png\": 28,\n\t\"./arrow\": 29,\n\t\"./arrow-01\": 30,\n\t\"./arrow-01-white\": 31,\n\t\"./arrow-01-white.svg\": 31,\n\t\"./arrow-01.svg\": 30,\n\t\"./arrow.svg\": 29,\n\t\"./banner--lp-fv-search\": 32,\n\t\"./banner--lp-fv-search.png\": 32,\n\t\"./banner--ls-bpsp\": 33,\n\t\"./banner--ls-bpsp.png\": 33,\n\t\"./banner--ls-freenance\": 34,\n\t\"./banner--ls-freenance.png\": 34,\n\t\"./banner--ls-kaikeisoft\": 35,\n\t\"./banner--ls-kaikeisoft.png\": 35,\n\t\"./banner--ls-kakuteishinkoku\": 36,\n\t\"./banner--ls-kakuteishinkoku.png\": 36,\n\t\"./banner--ls-kyuyoservice\": 37,\n\t\"./banner--ls-kyuyoservice.png\": 37,\n\t\"./banner--ls-lending-shikinbanner\": 38,\n\t\"./banner--ls-lending-shikinbanner.png\": 38,\n\t\"./banner--ls-mail\": 39,\n\t\"./banner--ls-mail.png\": 39,\n\t\"./banner--ls-misoca\": 40,\n\t\"./banner--ls-misoca.png\": 40,\n\t\"./banner--ls-sogyokeikaku\": 41,\n\t\"./banner--ls-sogyokeikaku.png\": 41,\n\t\"./bg--plans-lp-fv\": 42,\n\t\"./bg--plans-lp-fv.png\": 42,\n\t\"./bnr--dreamgate--bp-entry--wide_600_120\": 43,\n\t\"./bnr--dreamgate--bp-entry--wide_600_120.png\": 43,\n\t\"./bnr--dreamgate--bp-entry--wide_792_200\": 44,\n\t\"./bnr--dreamgate--bp-entry--wide_792_200.png\": 44,\n\t\"./bnr--dreamgate--bp-entry_300_300\": 45,\n\t\"./bnr--dreamgate--bp-entry_300_300.png\": 45,\n\t\"./bnr--kaikei--pc\": 46,\n\t\"./bnr--kaikei--pc.png\": 46,\n\t\"./bnr--kaikei--sp.webp\": 420,\n\t\"./bnr--kaikei--wide--pc.webp\": 421,\n\t\"./bnr--kaikei--wide--sp\": 47,\n\t\"./bnr--kaikei--wide--sp.png\": 47,\n\t\"./bnr--misoca--pc\": 48,\n\t\"./bnr--misoca--pc.png\": 48,\n\t\"./bnr--misoca--sp.webp\": 422,\n\t\"./bnr--misoca--wide--pc.webp\": 423,\n\t\"./bnr--misoca--wide--sp\": 49,\n\t\"./bnr--misoca--wide--sp.png\": 49,\n\t\"./bnr--shindan-lp--pc\": 50,\n\t\"./bnr--shindan-lp--pc.png\": 50,\n\t\"./bnr--shindan-lp--sp\": 51,\n\t\"./bnr--shindan-lp--sp.png\": 51,\n\t\"./bnr--shinkoku--pc\": 52,\n\t\"./bnr--shinkoku--pc.png\": 52,\n\t\"./bnr--shinkoku--sp.webp\": 424,\n\t\"./bnr--shinkoku--wide--pc.webp\": 425,\n\t\"./bnr--shinkoku--wide--sp\": 53,\n\t\"./bnr--shinkoku--wide--sp.png\": 53,\n\t\"./icon--A\": 54,\n\t\"./icon--A.svg\": 54,\n\t\"./icon--B\": 55,\n\t\"./icon--B.svg\": 55,\n\t\"./icon--C\": 56,\n\t\"./icon--C.svg\": 56,\n\t\"./icon--S\": 57,\n\t\"./icon--S.svg\": 57,\n\t\"./icon--accordion--circle--minus\": 58,\n\t\"./icon--accordion--circle--minus.svg\": 58,\n\t\"./icon--accordion--circle--plus\": 59,\n\t\"./icon--accordion--circle--plus.svg\": 59,\n\t\"./icon--account\": 60,\n\t\"./icon--account.svg\": 60,\n\t\"./icon--alert-triangle\": 61,\n\t\"./icon--alert-triangle--red\": 62,\n\t\"./icon--alert-triangle--red.svg\": 62,\n\t\"./icon--alert-triangle.svg\": 61,\n\t\"./icon--announce--expire-soon\": 63,\n\t\"./icon--announce--expire-soon.svg\": 63,\n\t\"./icon--announce--expired\": 64,\n\t\"./icon--announce--expired.svg\": 64,\n\t\"./icon--anounce\": 65,\n\t\"./icon--anounce.svg\": 65,\n\t\"./icon--arrow--back-page\": 66,\n\t\"./icon--arrow--back-page--hover\": 67,\n\t\"./icon--arrow--back-page--hover.svg\": 67,\n\t\"./icon--arrow--back-page.svg\": 66,\n\t\"./icon--arrow--blue\": 68,\n\t\"./icon--arrow--blue.svg\": 68,\n\t\"./icon--arrow--breadcrumb\": 69,\n\t\"./icon--arrow--breadcrumb.svg\": 69,\n\t\"./icon--arrow--next\": 70,\n\t\"./icon--arrow--next--history\": 71,\n\t\"./icon--arrow--next--history.svg\": 71,\n\t\"./icon--arrow--next--learn\": 72,\n\t\"./icon--arrow--next--learn.svg\": 72,\n\t\"./icon--arrow--next--top-fv-card\": 73,\n\t\"./icon--arrow--next--top-fv-card.svg\": 73,\n\t\"./icon--arrow--next.svg\": 70,\n\t\"./icon--arrow--pink\": 74,\n\t\"./icon--arrow--pink.svg\": 74,\n\t\"./icon--arrow--prev\": 75,\n\t\"./icon--arrow--prev--history\": 76,\n\t\"./icon--arrow--prev--history.svg\": 76,\n\t\"./icon--arrow--prev.svg\": 75,\n\t\"./icon--arrow--right\": 77,\n\t\"./icon--arrow--right.svg\": 77,\n\t\"./icon--arrow--selectbox\": 78,\n\t\"./icon--arrow--selectbox.svg\": 78,\n\t\"./icon--arrow--stepper\": 79,\n\t\"./icon--arrow--stepper--active\": 80,\n\t\"./icon--arrow--stepper--active.svg\": 80,\n\t\"./icon--arrow--stepper.svg\": 79,\n\t\"./icon--arrow--tab--on\": 81,\n\t\"./icon--arrow--tab--on.svg\": 81,\n\t\"./icon--arrow--yellow\": 82,\n\t\"./icon--arrow--yellow.svg\": 82,\n\t\"./icon--arrow-next--search-result-card\": 83,\n\t\"./icon--arrow-next--search-result-card--hover\": 84,\n\t\"./icon--arrow-next--search-result-card--hover.svg\": 84,\n\t\"./icon--arrow-next--search-result-card.svg\": 83,\n\t\"./icon--arrowhead-down\": 85,\n\t\"./icon--arrowhead-down.svg\": 85,\n\t\"./icon--arrowhead-up\": 86,\n\t\"./icon--arrowhead-up.svg\": 86,\n\t\"./icon--back-to-top\": 87,\n\t\"./icon--back-to-top.svg\": 87,\n\t\"./icon--bad\": 88,\n\t\"./icon--bad.svg\": 88,\n\t\"./icon--beginner--xs\": 89,\n\t\"./icon--beginner--xs.svg\": 89,\n\t\"./icon--bell\": 90,\n\t\"./icon--bell--blue--lg\": 91,\n\t\"./icon--bell--blue--lg.svg\": 91,\n\t\"./icon--bell--blue--sm\": 92,\n\t\"./icon--bell--blue--sm.svg\": 92,\n\t\"./icon--bell--xs\": 93,\n\t\"./icon--bell--xs.svg\": 93,\n\t\"./icon--bell.svg\": 90,\n\t\"./icon--book--xs\": 94,\n\t\"./icon--book--xs.svg\": 94,\n\t\"./icon--bs-designer\": 95,\n\t\"./icon--bs-designer.png\": 95,\n\t\"./icon--bs-hudosan\": 96,\n\t\"./icon--bs-hudosan.png\": 96,\n\t\"./icon--bs-inshoku\": 97,\n\t\"./icon--bs-inshoku.png\": 97,\n\t\"./icon--bs-it\": 98,\n\t\"./icon--bs-it.png\": 98,\n\t\"./icon--bs-kensetsu\": 99,\n\t\"./icon--bs-kensetsu.png\": 99,\n\t\"./icon--bs-kouri\": 100,\n\t\"./icon--bs-kouri.png\": 100,\n\t\"./icon--bs-netshop\": 101,\n\t\"./icon--bs-netshop.png\": 101,\n\t\"./icon--bs-ribiyo\": 102,\n\t\"./icon--bs-ribiyo.png\": 102,\n\t\"./icon--bs-seitai\": 103,\n\t\"./icon--bs-seitai.png\": 103,\n\t\"./icon--bs-sonota\": 104,\n\t\"./icon--bs-sonota.png\": 104,\n\t\"./icon--bs-unso\": 105,\n\t\"./icon--bs-unso.png\": 105,\n\t\"./icon--bs-webapp\": 106,\n\t\"./icon--bs-webapp.png\": 106,\n\t\"./icon--bs-writer\": 107,\n\t\"./icon--bs-writer.png\": 107,\n\t\"./icon--building\": 108,\n\t\"./icon--building.svg\": 108,\n\t\"./icon--bullet\": 109,\n\t\"./icon--bullet.svg\": 109,\n\t\"./icon--chasefooter--consulting\": 110,\n\t\"./icon--chasefooter--consulting.svg\": 110,\n\t\"./icon--chasefooter--external--link\": 111,\n\t\"./icon--chasefooter--external--link.svg\": 111,\n\t\"./icon--chasefooter--relation\": 112,\n\t\"./icon--chasefooter--relation.svg\": 112,\n\t\"./icon--checkbox\": 113,\n\t\"./icon--checkbox-checked\": 114,\n\t\"./icon--checkbox-checked.svg\": 114,\n\t\"./icon--checkbox.svg\": 113,\n\t\"./icon--checkmark\": 115,\n\t\"./icon--checkmark--cyan-blue\": 116,\n\t\"./icon--checkmark--cyan-blue.svg\": 116,\n\t\"./icon--checkmark--white\": 117,\n\t\"./icon--checkmark--white.svg\": 117,\n\t\"./icon--checkmark.svg\": 115,\n\t\"./icon--chevron_right\": 118,\n\t\"./icon--chevron_right--search-result\": 119,\n\t\"./icon--chevron_right--search-result.svg\": 119,\n\t\"./icon--chevron_right.svg\": 118,\n\t\"./icon--circle-question\": 120,\n\t\"./icon--circle-question.svg\": 120,\n\t\"./icon--close-modal\": 121,\n\t\"./icon--close-modal.svg\": 121,\n\t\"./icon--consulting--xs\": 122,\n\t\"./icon--consulting--xs.svg\": 122,\n\t\"./icon--copy\": 123,\n\t\"./icon--copy--big\": 124,\n\t\"./icon--copy--big.svg\": 124,\n\t\"./icon--copy.svg\": 123,\n\t\"./icon--cross\": 125,\n\t\"./icon--cross.svg\": 125,\n\t\"./icon--delete\": 126,\n\t\"./icon--delete.svg\": 126,\n\t\"./icon--dots\": 127,\n\t\"./icon--dots.svg\": 127,\n\t\"./icon--edit-score\": 128,\n\t\"./icon--edit-score.svg\": 128,\n\t\"./icon--envelop\": 129,\n\t\"./icon--envelop.svg\": 129,\n\t\"./icon--error\": 130,\n\t\"./icon--error--blue\": 131,\n\t\"./icon--error--blue.svg\": 131,\n\t\"./icon--error.svg\": 130,\n\t\"./icon--exclamation\": 132,\n\t\"./icon--exclamation.svg\": 132,\n\t\"./icon--expire-soon\": 133,\n\t\"./icon--expire-soon.svg\": 133,\n\t\"./icon--expired\": 134,\n\t\"./icon--expired.svg\": 134,\n\t\"./icon--external-link\": 135,\n\t\"./icon--external-link.svg\": 135,\n\t\"./icon--favorite-button-hover--add\": 136,\n\t\"./icon--favorite-button-hover--add.svg\": 136,\n\t\"./icon--favorite-button-hover--remove\": 137,\n\t\"./icon--favorite-button-hover--remove.svg\": 137,\n\t\"./icon--file-register\": 138,\n\t\"./icon--file-register.svg\": 138,\n\t\"./icon--fine\": 139,\n\t\"./icon--fine.svg\": 139,\n\t\"./icon--gabage\": 140,\n\t\"./icon--gabage.svg\": 140,\n\t\"./icon--good\": 141,\n\t\"./icon--good.svg\": 141,\n\t\"./icon--hand-point-right-solid\": 142,\n\t\"./icon--hand-point-right-solid.svg\": 142,\n\t\"./icon--heart-mark--off\": 143,\n\t\"./icon--heart-mark--off.svg\": 143,\n\t\"./icon--heart-mark--on\": 144,\n\t\"./icon--heart-mark--on.svg\": 144,\n\t\"./icon--heart-mark--pink\": 145,\n\t\"./icon--heart-mark--pink.svg\": 145,\n\t\"./icon--heart-mark--white\": 146,\n\t\"./icon--heart-mark--white.svg\": 146,\n\t\"./icon--history\": 147,\n\t\"./icon--history--white\": 148,\n\t\"./icon--history--white.svg\": 148,\n\t\"./icon--history.svg\": 147,\n\t\"./icon--info--blue\": 149,\n\t\"./icon--info--blue.svg\": 149,\n\t\"./icon--info--darkblue\": 150,\n\t\"./icon--info--darkblue.svg\": 150,\n\t\"./icon--links--blue\": 151,\n\t\"./icon--links--blue.svg\": 151,\n\t\"./icon--links--green\": 152,\n\t\"./icon--links--green.svg\": 152,\n\t\"./icon--lock\": 153,\n\t\"./icon--lock.svg\": 153,\n\t\"./icon--login\": 154,\n\t\"./icon--login--blue\": 155,\n\t\"./icon--login--blue.svg\": 155,\n\t\"./icon--login.svg\": 154,\n\t\"./icon--member\": 156,\n\t\"./icon--member--blue\": 157,\n\t\"./icon--member--blue.svg\": 157,\n\t\"./icon--member.svg\": 156,\n\t\"./icon--menu--consult\": 158,\n\t\"./icon--menu--consult.svg\": 158,\n\t\"./icon--menu--make-plan\": 159,\n\t\"./icon--menu--make-plan.svg\": 159,\n\t\"./icon--menu--search\": 160,\n\t\"./icon--menu--search.svg\": 160,\n\t\"./icon--menu--study\": 161,\n\t\"./icon--menu--study.svg\": 161,\n\t\"./icon--menu--xs\": 162,\n\t\"./icon--menu--xs.svg\": 162,\n\t\"./icon--minus\": 163,\n\t\"./icon--minus.svg\": 163,\n\t\"./icon--mypage\": 164,\n\t\"./icon--mypage.svg\": 164,\n\t\"./icon--normal\": 165,\n\t\"./icon--normal.svg\": 165,\n\t\"./icon--overwrite\": 166,\n\t\"./icon--overwrite-orange\": 167,\n\t\"./icon--overwrite-orange.svg\": 167,\n\t\"./icon--overwrite.svg\": 166,\n\t\"./icon--pen\": 168,\n\t\"./icon--pen.svg\": 168,\n\t\"./icon--plans-lp-fv-01\": 169,\n\t\"./icon--plans-lp-fv-01.png\": 169,\n\t\"./icon--plans-lp-fv-02\": 170,\n\t\"./icon--plans-lp-fv-02.png\": 170,\n\t\"./icon--plans-lp-fv-03\": 171,\n\t\"./icon--plans-lp-fv-03.png\": 171,\n\t\"./icon--plus\": 172,\n\t\"./icon--plus--ui-orange\": 173,\n\t\"./icon--plus--ui-orange.svg\": 173,\n\t\"./icon--plus--white\": 174,\n\t\"./icon--plus--white.svg\": 174,\n\t\"./icon--plus-square\": 175,\n\t\"./icon--plus-square.svg\": 175,\n\t\"./icon--plus.svg\": 172,\n\t\"./icon--question\": 176,\n\t\"./icon--question.svg\": 176,\n\t\"./icon--read-more--minus\": 177,\n\t\"./icon--read-more--minus.svg\": 177,\n\t\"./icon--read-more--plus\": 178,\n\t\"./icon--read-more--plus.svg\": 178,\n\t\"./icon--register\": 179,\n\t\"./icon--register.svg\": 179,\n\t\"./icon--rising-arrow\": 180,\n\t\"./icon--rising-arrow.svg\": 180,\n\t\"./icon--sc--circle-plus--off\": 181,\n\t\"./icon--sc--circle-plus--off.svg\": 181,\n\t\"./icon--sc--circle-plus--on\": 182,\n\t\"./icon--sc--circle-plus--on.svg\": 182,\n\t\"./icon--sc--select\": 183,\n\t\"./icon--sc--select--modal\": 184,\n\t\"./icon--sc--select--modal.svg\": 184,\n\t\"./icon--sc--select.svg\": 183,\n\t\"./icon--sc--submit-btn--off\": 185,\n\t\"./icon--sc--submit-btn--off.svg\": 185,\n\t\"./icon--sc--submit-btn--on\": 186,\n\t\"./icon--sc--submit-btn--on.svg\": 186,\n\t\"./icon--scroll-top\": 187,\n\t\"./icon--scroll-top.svg\": 187,\n\t\"./icon--search\": 188,\n\t\"./icon--search--enhanced\": 189,\n\t\"./icon--search--enhanced--xs\": 190,\n\t\"./icon--search--enhanced--xs--rv\": 191,\n\t\"./icon--search--enhanced--xs--rv.svg\": 191,\n\t\"./icon--search--enhanced--xs.svg\": 190,\n\t\"./icon--search--enhanced.svg\": 189,\n\t\"./icon--search--learnSearch\": 192,\n\t\"./icon--search--learnSearch.svg\": 192,\n\t\"./icon--search--main\": 193,\n\t\"./icon--search--main--type2\": 194,\n\t\"./icon--search--main--type2.svg\": 194,\n\t\"./icon--search--main--xs\": 195,\n\t\"./icon--search--main--xs.svg\": 195,\n\t\"./icon--search--main.svg\": 193,\n\t\"./icon--search--research\": 196,\n\t\"./icon--search--research.svg\": 196,\n\t\"./icon--search--xs\": 197,\n\t\"./icon--search--xs.svg\": 197,\n\t\"./icon--search-condition\": 198,\n\t\"./icon--search-condition.svg\": 198,\n\t\"./icon--search-result-not-found\": 199,\n\t\"./icon--search-result-not-found.svg\": 199,\n\t\"./icon--search.svg\": 188,\n\t\"./icon--star\": 200,\n\t\"./icon--star--gray\": 201,\n\t\"./icon--star--gray--filled\": 202,\n\t\"./icon--star--gray--filled.svg\": 202,\n\t\"./icon--star--gray.svg\": 201,\n\t\"./icon--star--white\": 203,\n\t\"./icon--star--white.svg\": 203,\n\t\"./icon--star--yellow--filled\": 204,\n\t\"./icon--star--yellow--filled.svg\": 204,\n\t\"./icon--star.svg\": 200,\n\t\"./icon--success\": 205,\n\t\"./icon--success.svg\": 205,\n\t\"./icon--switching--card\": 206,\n\t\"./icon--switching--card--on\": 207,\n\t\"./icon--switching--card--on.svg\": 207,\n\t\"./icon--switching--card.svg\": 206,\n\t\"./icon--switching--carousel--next\": 208,\n\t\"./icon--switching--carousel--next.svg\": 208,\n\t\"./icon--switching--carousel--prev\": 209,\n\t\"./icon--switching--carousel--prev.svg\": 209,\n\t\"./icon--switching--table\": 210,\n\t\"./icon--switching--table--on\": 211,\n\t\"./icon--switching--table--on.svg\": 211,\n\t\"./icon--switching--table.svg\": 210,\n\t\"./icon--tooltip\": 212,\n\t\"./icon--tooltip.svg\": 212,\n\t\"./icon--top-ov--book\": 213,\n\t\"./icon--top-ov--book.svg\": 213,\n\t\"./icon--top-ov--pc\": 214,\n\t\"./icon--top-ov--pc.svg\": 214,\n\t\"./icon--top-ov--pen\": 215,\n\t\"./icon--top-ov--pen.svg\": 215,\n\t\"./icon--top-ov--sp\": 216,\n\t\"./icon--top-ov--sp.svg\": 216,\n\t\"./icon--triangle--step\": 217,\n\t\"./icon--triangle--step.svg\": 217,\n\t\"./icon--upload\": 218,\n\t\"./icon--upload.svg\": 218,\n\t\"./icon--window-close\": 219,\n\t\"./icon--window-close--blue\": 220,\n\t\"./icon--window-close--blue.svg\": 220,\n\t\"./icon--window-close--cross-mark--white\": 221,\n\t\"./icon--window-close--cross-mark--white.svg\": 221,\n\t\"./icon--window-close--dark-gray\": 222,\n\t\"./icon--window-close--dark-gray.svg\": 222,\n\t\"./icon--window-close--xs\": 223,\n\t\"./icon--window-close--xs.svg\": 223,\n\t\"./icon--window-close.svg\": 219,\n\t\"./icon-newwin\": 224,\n\t\"./icon-newwin.png\": 224,\n\t\"./icon_shindan\": 225,\n\t\"./icon_shindan.svg\": 225,\n\t\"./inner-data-object\": 226,\n\t\"./inner-data-object.png\": 226,\n\t\"./label--yayoi-data-support\": 227,\n\t\"./label--yayoi-data-support.svg\": 227,\n\t\"./learn-search/fig-kv\": 228,\n\t\"./learn-search/fig-kv.svg\": 228,\n\t\"./learn-search/thumbnail--sample\": 229,\n\t\"./learn-search/thumbnail--sample.png\": 229,\n\t\"./logo--shikin-choutatu-navi\": 230,\n\t\"./logo--shikin-choutatu-navi.svg\": 230,\n\t\"./logo--shikin-choutatu-navi2\": 231,\n\t\"./logo--shikin-choutatu-navi2.svg\": 231,\n\t\"./logo-facebook\": 232,\n\t\"./logo-facebook-circle\": 233,\n\t\"./logo-facebook-circle.svg\": 233,\n\t\"./logo-facebook.svg\": 232,\n\t\"./logo-hatenabookmark\": 234,\n\t\"./logo-hatenabookmark.svg\": 234,\n\t\"./logo-line\": 235,\n\t\"./logo-line.svg\": 235,\n\t\"./logo-line2\": 236,\n\t\"./logo-line2.svg\": 236,\n\t\"./logo-orix\": 237,\n\t\"./logo-orix.svg\": 237,\n\t\"./logo-pocket\": 238,\n\t\"./logo-pocket.svg\": 238,\n\t\"./logo-twitter-circle\": 239,\n\t\"./logo-twitter-circle.svg\": 239,\n\t\"./logo-x\": 240,\n\t\"./logo-x.svg\": 240,\n\t\"./lp-fv--shikin\": 241,\n\t\"./lp-fv--shikin.png\": 241,\n\t\"./lp-sec-fts--consult\": 242,\n\t\"./lp-sec-fts--consult.jpg\": 242,\n\t\"./lp-sec-fts--create\": 243,\n\t\"./lp-sec-fts--create.jpg\": 243,\n\t\"./lp-sec-fts--search\": 244,\n\t\"./lp-sec-fts--search.jpg\": 244,\n\t\"./lp-sec-fts--shindan\": 245,\n\t\"./lp-sec-fts--shindan.png\": 245,\n\t\"./lp-sec-fts--study\": 246,\n\t\"./lp-sec-fts--study.jpg\": 246,\n\t\"./mail-bnr\": 247,\n\t\"./mail-bnr.jpg\": 247,\n\t\"./mail/arrow26\": 248,\n\t\"./mail/arrow26.png\": 248,\n\t\"./mail/arrow32\": 249,\n\t\"./mail/arrow32.png\": 249,\n\t\"./mail/banner217\": 250,\n\t\"./mail/banner217.jpg\": 250,\n\t\"./mail/button350\": 251,\n\t\"./mail/button350.png\": 251,\n\t\"./mail/button600\": 252,\n\t\"./mail/button600.png\": 252,\n\t\"./mail/footer_logo\": 253,\n\t\"./mail/footer_logo.png\": 253,\n\t\"./mail/mail_banner_01\": 14,\n\t\"./mail/mail_banner_01.jpg\": 426,\n\t\"./mail/mail_banner_01.png\": 14,\n\t\"./mail/mail_banner_02\": 15,\n\t\"./mail/mail_banner_02.jpg\": 427,\n\t\"./mail/mail_banner_02.png\": 15,\n\t\"./mail/mail_banner_03\": 16,\n\t\"./mail/mail_banner_03.jpg\": 428,\n\t\"./mail/mail_banner_03.png\": 16,\n\t\"./mail/mail_banner_04\": 254,\n\t\"./mail/mail_banner_04.jpg\": 254,\n\t\"./mail/mail_banner_05\": 255,\n\t\"./mail/mail_banner_05.jpg\": 255,\n\t\"./mail/mail_banner_06\": 256,\n\t\"./mail/mail_banner_06.jpg\": 256,\n\t\"./mail/mail_banner_07\": 257,\n\t\"./mail/mail_banner_07.jpg\": 257,\n\t\"./mail/mail_banner_08\": 258,\n\t\"./mail/mail_banner_08.jpg\": 258,\n\t\"./mail/mail_banner_09\": 259,\n\t\"./mail/mail_banner_09.jpg\": 259,\n\t\"./mail/spacer\": 260,\n\t\"./mail/spacer.gif\": 260,\n\t\"./mail_step_1\": 261,\n\t\"./mail_step_1.png\": 261,\n\t\"./mail_step_2\": 262,\n\t\"./mail_step_2.png\": 262,\n\t\"./mail_step_3\": 263,\n\t\"./mail_step_3.png\": 263,\n\t\"./mask--another-tab\": 264,\n\t\"./mask--another-tab.svg\": 264,\n\t\"./mask--chevron-down\": 265,\n\t\"./mask--chevron-down.svg\": 265,\n\t\"./mask--chevron-right\": 266,\n\t\"./mask--chevron-right.svg\": 266,\n\t\"./mask--login\": 267,\n\t\"./mask--login.svg\": 267,\n\t\"./mask--rising-arrow\": 268,\n\t\"./mask--rising-arrow.svg\": 268,\n\t\"./member-merit--bookmark\": 269,\n\t\"./member-merit--bookmark.svg\": 269,\n\t\"./member-merit--favorite\": 270,\n\t\"./member-merit--favorite.svg\": 270,\n\t\"./member-merit--illustration-1\": 271,\n\t\"./member-merit--illustration-1.svg\": 271,\n\t\"./member-merit--illustration-2\": 272,\n\t\"./member-merit--illustration-2.svg\": 272,\n\t\"./member-merit--mail\": 273,\n\t\"./member-merit--mail.svg\": 273,\n\t\"./member-merit--search\": 274,\n\t\"./member-merit--search.svg\": 274,\n\t\"./member-merit--sogyokeikaku\": 275,\n\t\"./member-merit--sogyokeikaku.svg\": 275,\n\t\"./member-merit_1\": 276,\n\t\"./member-merit_1.png\": 276,\n\t\"./member-merit_2\": 277,\n\t\"./member-merit_2.png\": 277,\n\t\"./member-merit_3\": 278,\n\t\"./member-merit_3.png\": 278,\n\t\"./member-merit_4\": 279,\n\t\"./member-merit_4.png\": 279,\n\t\"./member-merit_5\": 280,\n\t\"./member-merit_5.png\": 280,\n\t\"./member_step_1\": 281,\n\t\"./member_step_1.png\": 281,\n\t\"./member_step_2\": 282,\n\t\"./member_step_2.png\": 282,\n\t\"./member_step_3\": 283,\n\t\"./member_step_3.png\": 283,\n\t\"./member_step_4\": 284,\n\t\"./member_step_4.png\": 284,\n\t\"./member_step_easy\": 285,\n\t\"./member_step_easy.png\": 285,\n\t\"./object--kirakira\": 286,\n\t\"./object--kirakira.svg\": 286,\n\t\"./object--recommend-01\": 287,\n\t\"./object--recommend-01.svg\": 287,\n\t\"./object--recommend-02\": 288,\n\t\"./object--recommend-02.svg\": 288,\n\t\"./object--recommend-03\": 289,\n\t\"./object--recommend-03.svg\": 289,\n\t\"./object--recommend-mix\": 290,\n\t\"./object--recommend-mix.png\": 290,\n\t\"./object--salescopy-gadget-group\": 291,\n\t\"./object--salescopy-gadget-group.png\": 291,\n\t\"./ogp\": 292,\n\t\"./ogp.png\": 292,\n\t\"./ornament--arrow--main\": 293,\n\t\"./ornament--arrow--main.svg\": 293,\n\t\"./ornament--blade\": 294,\n\t\"./ornament--blade.svg\": 294,\n\t\"./ornament--hexagon\": 295,\n\t\"./ornament--hexagon--blue\": 296,\n\t\"./ornament--hexagon--blue.svg\": 296,\n\t\"./ornament--hexagon--xs\": 297,\n\t\"./ornament--hexagon--xs.svg\": 297,\n\t\"./ornament--hexagon.svg\": 295,\n\t\"./ornament--mark--main\": 298,\n\t\"./ornament--mark--main.svg\": 298,\n\t\"./ornament--triangle--main\": 299,\n\t\"./ornament--triangle--main.svg\": 299,\n\t\"./ornament--wave\": 300,\n\t\"./ornament--wave.svg\": 300,\n\t\"./pagination-switch--next\": 301,\n\t\"./pagination-switch--next--disabled\": 302,\n\t\"./pagination-switch--next--disabled.svg\": 302,\n\t\"./pagination-switch--next--sb\": 303,\n\t\"./pagination-switch--next--sb.svg\": 303,\n\t\"./pagination-switch--next.svg\": 301,\n\t\"./pagination-switch--prev\": 304,\n\t\"./pagination-switch--prev--disabled\": 305,\n\t\"./pagination-switch--prev--disabled.svg\": 305,\n\t\"./pagination-switch--prev--sb\": 306,\n\t\"./pagination-switch--prev--sb.svg\": 306,\n\t\"./pagination-switch--prev.svg\": 304,\n\t\"./plan-lp-genkinshushi\": 307,\n\t\"./plan-lp-genkinshushi.png\": 307,\n\t\"./plan-lp-related-01\": 308,\n\t\"./plan-lp-related-01.jpg\": 308,\n\t\"./plan-lp-related-02\": 309,\n\t\"./plan-lp-related-02.jpg\": 309,\n\t\"./plan-lp-related-03\": 310,\n\t\"./plan-lp-related-03.jpg\": 310,\n\t\"./plan-lp-related-04\": 311,\n\t\"./plan-lp-related-04.jpg\": 311,\n\t\"./plan-lp-related-05\": 312,\n\t\"./plan-lp-related-05.jpg\": 312,\n\t\"./plan-lp-related-06\": 313,\n\t\"./plan-lp-related-06.jpg\": 313,\n\t\"./plan-lp-related-07\": 314,\n\t\"./plan-lp-related-07.jpg\": 314,\n\t\"./plan-lp-related-08\": 315,\n\t\"./plan-lp-related-08.jpg\": 315,\n\t\"./plan-lp-related-09\": 316,\n\t\"./plan-lp-related-09.jpg\": 316,\n\t\"./plan-lp-sogyo-01\": 317,\n\t\"./plan-lp-sogyo-01.png\": 317,\n\t\"./plan-lp-sogyo-02\": 318,\n\t\"./plan-lp-sogyo-02.png\": 318,\n\t\"./plan-lp-sogyo-03\": 319,\n\t\"./plan-lp-sogyo-03.png\": 319,\n\t\"./plan-lp-sogyo-04\": 320,\n\t\"./plan-lp-sogyo-04.png\": 320,\n\t\"./plan-lp-suchi-01\": 321,\n\t\"./plan-lp-suchi-01.png\": 321,\n\t\"./plan-lp-suchi-02\": 322,\n\t\"./plan-lp-suchi-02-sp\": 323,\n\t\"./plan-lp-suchi-02-sp.png\": 323,\n\t\"./plan-lp-suchi-02.png\": 322,\n\t\"./plan-lp-suchi-03\": 324,\n\t\"./plan-lp-suchi-03.png\": 324,\n\t\"./plan-lp-suchi-04\": 325,\n\t\"./plan-lp-suchi-04.png\": 325,\n\t\"./register-bnr\": 326,\n\t\"./register-bnr.jpg\": 326,\n\t\"./search-ithojokin\": 327,\n\t\"./search-ithojokin-sp\": 328,\n\t\"./search-ithojokin-sp.png\": 328,\n\t\"./search-ithojokin.png\": 327,\n\t\"./select-form-ui-pair\": 329,\n\t\"./select-form-ui-pair.svg\": 329,\n\t\"./shindan-bnr-sp\": 330,\n\t\"./shindan-bnr-sp.jpg\": 330,\n\t\"./shindan-result-top\": 331,\n\t\"./shindan-result-top.png\": 331,\n\t\"./shindan_procedure_1\": 332,\n\t\"./shindan_procedure_1.png\": 332,\n\t\"./shindan_procedure_2\": 333,\n\t\"./shindan_procedure_2.png\": 333,\n\t\"./shindan_q1\": 334,\n\t\"./shindan_q1.svg\": 334,\n\t\"./shindan_q1_sp\": 335,\n\t\"./shindan_q1_sp.svg\": 335,\n\t\"./shindan_q2\": 336,\n\t\"./shindan_q2.svg\": 336,\n\t\"./shindan_q2_sp\": 337,\n\t\"./shindan_q2_sp.svg\": 337,\n\t\"./shindan_q3\": 338,\n\t\"./shindan_q3.svg\": 338,\n\t\"./shindan_q3_sp\": 339,\n\t\"./shindan_q3_sp.svg\": 339,\n\t\"./shindan_q4\": 340,\n\t\"./shindan_q4.svg\": 340,\n\t\"./shindan_q4_sp\": 341,\n\t\"./shindan_q4_sp.svg\": 341,\n\t\"./shindan_q5\": 342,\n\t\"./shindan_q5.svg\": 342,\n\t\"./shindan_q5_sp\": 343,\n\t\"./shindan_q5_sp.svg\": 343,\n\t\"./shindan_specialist_1\": 344,\n\t\"./shindan_specialist_1.png\": 344,\n\t\"./shindan_specialist_2\": 345,\n\t\"./shindan_specialist_2.png\": 345,\n\t\"./shindan_specialist_3\": 346,\n\t\"./shindan_specialist_3.png\": 346,\n\t\"./shindan_top\": 347,\n\t\"./shindan_top.png\": 347,\n\t\"./shindan_top_sp\": 348,\n\t\"./shindan_top_sp.png\": 348,\n\t\"./sidebar/banner--accountonline\": 349,\n\t\"./sidebar/banner--accountonline.png\": 349,\n\t\"./sidebar/banner--aoiroonline\": 350,\n\t\"./sidebar/banner--aoiroonline.png\": 350,\n\t\"./sidebar/banner--campaign-upgrade\": 351,\n\t\"./sidebar/banner--campaign-upgrade.png\": 351,\n\t\"./sidebar/banner--default\": 352,\n\t\"./sidebar/banner--default--type2\": 353,\n\t\"./sidebar/banner--default--type2.png\": 353,\n\t\"./sidebar/banner--default.png\": 352,\n\t\"./sidebar/banner--itbanking-btob\": 354,\n\t\"./sidebar/banner--itbanking-btob.png\": 354,\n\t\"./sidebar/banner--misoca\": 355,\n\t\"./sidebar/banner--misoca.png\": 355,\n\t\"./sidebar/banner--shiroiroonline\": 356,\n\t\"./sidebar/banner--shiroiroonline.png\": 356,\n\t\"./sidebar/banner--support-coronavirus\": 357,\n\t\"./sidebar/banner--support-coronavirus.png\": 357,\n\t\"./sidebar/banner--versus-coronavirus\": 358,\n\t\"./sidebar/banner--versus-coronavirus.png\": 358,\n\t\"./sidebar/banner--whitedeclaration\": 359,\n\t\"./sidebar/banner--whitedeclaration.png\": 359,\n\t\"./sidebar/banner--youtube-yayoichannel\": 360,\n\t\"./sidebar/banner--youtube-yayoichannel.png\": 360,\n\t\"./sidebar/bnr--sq--account\": 361,\n\t\"./sidebar/bnr--sq--account.png\": 361,\n\t\"./sidebar/bnr--sq--base-knowledge-of-working-capital\": 362,\n\t\"./sidebar/bnr--sq--base-knowledge-of-working-capital.jpg\": 362,\n\t\"./sidebar/bnr--sq--calctax\": 363,\n\t\"./sidebar/bnr--sq--calctax.png\": 363,\n\t\"./sidebar/bnr--sq--consult-expert\": 364,\n\t\"./sidebar/bnr--sq--consult-expert.jpg\": 364,\n\t\"./sidebar/bnr--sq--entrenavi\": 365,\n\t\"./sidebar/bnr--sq--entrenavi.png\": 365,\n\t\"./sidebar/bnr--sq--foundation\": 366,\n\t\"./sidebar/bnr--sq--foundation.png\": 366,\n\t\"./sidebar/bnr--sq--ftrguide\": 367,\n\t\"./sidebar/bnr--sq--ftrguide.png\": 367,\n\t\"./sidebar/bnr--sq--hojyokin-kihon\": 368,\n\t\"./sidebar/bnr--sq--hojyokin-kihon.jpg\": 368,\n\t\"./sidebar/bnr--sq--kaigyoutodoke\": 369,\n\t\"./sidebar/bnr--sq--kaigyoutodoke.jpg\": 369,\n\t\"./sidebar/bnr--sq--kariire-kihon\": 370,\n\t\"./sidebar/bnr--sq--kariire-kihon.jpg\": 370,\n\t\"./sidebar/bnr--sq--kigyouline\": 371,\n\t\"./sidebar/bnr--sq--kigyouline.png\": 371,\n\t\"./sidebar/bnr--sq--m-and-a\": 372,\n\t\"./sidebar/bnr--sq--m-and-a.jpg\": 372,\n\t\"./sidebar/bnr--sq--misoca\": 373,\n\t\"./sidebar/bnr--sq--misoca.png\": 373,\n\t\"./sidebar/bnr--sq--nintei-shien-kikan\": 374,\n\t\"./sidebar/bnr--sq--nintei-shien-kikan.jpg\": 374,\n\t\"./sidebar/bnr--sq--online-yuushi\": 375,\n\t\"./sidebar/bnr--sq--online-yuushi.jpg\": 375,\n\t\"./sidebar/bnr--sq--reschedule\": 376,\n\t\"./sidebar/bnr--sq--reschedule.jpg\": 376,\n\t\"./sidebar/bnr--sq--seidoyuushi\": 377,\n\t\"./sidebar/bnr--sq--seidoyuushi.jpg\": 377,\n\t\"./sidebar/bnr--sq--shikin-manabu\": 378,\n\t\"./sidebar/bnr--sq--shikin-manabu.jpg\": 378,\n\t\"./sidebar/bnr--sq--shinkoku-ol\": 379,\n\t\"./sidebar/bnr--sq--shinkoku-ol.png\": 379,\n\t\"./sidebar/bnr--sq--shinyouhosyoukyoukai\": 380,\n\t\"./sidebar/bnr--sq--shinyouhosyoukyoukai.jpg\": 380,\n\t\"./sidebar/bnr--sq--sumoviva\": 381,\n\t\"./sidebar/bnr--sq--sumoviva-01\": 382,\n\t\"./sidebar/bnr--sq--sumoviva-01.png\": 382,\n\t\"./sidebar/bnr--sq--sumoviva-02\": 383,\n\t\"./sidebar/bnr--sq--sumoviva-02.png\": 383,\n\t\"./sidebar/bnr--sq--sumoviva-03\": 384,\n\t\"./sidebar/bnr--sq--sumoviva-03.png\": 384,\n\t\"./sidebar/bnr--sq--sumoviva.png\": 381,\n\t\"./sidebar/bnr--sq--teleworking\": 385,\n\t\"./sidebar/bnr--sq--teleworking.png\": 385,\n\t\"./sidebar/bnr--sq--yahouonline\": 386,\n\t\"./sidebar/bnr--sq--yahouonline.png\": 386,\n\t\"./sidebar/bnr--sq--yayoianshinma\": 387,\n\t\"./sidebar/bnr--sq--yayoianshinma.png\": 387,\n\t\"./sidebar/bnr--sq--yokisenujitai\": 388,\n\t\"./sidebar/bnr--sq--yokisenujitai.jpg\": 388,\n\t\"./sidebar/bnr--sq--youtube-yayoichannel\": 389,\n\t\"./sidebar/bnr--sq--youtube-yayoichannel.png\": 389,\n\t\"./sidebar/bnr--sq--zeirishi-shien\": 390,\n\t\"./sidebar/bnr--sq--zeirishi-shien.jpg\": 390,\n\t\"./sidebar/bnr--sq--zeirishi-shokai\": 391,\n\t\"./sidebar/bnr--sq--zeirishi-shokai.jpeg\": 391,\n\t\"./sidebar/illust--yayoikaikei\": 392,\n\t\"./sidebar/illust--yayoikaikei.png\": 392,\n\t\"./sidebar/sogyokeikaku-banner\": 393,\n\t\"./sidebar/sogyokeikaku-banner.png\": 393,\n\t\"./sogyosuchikeikaku-judgement\": 394,\n\t\"./sogyosuchikeikaku-judgement.png\": 394,\n\t\"./sogyosuchikeikaku-plan\": 395,\n\t\"./sogyosuchikeikaku-plan.png\": 395,\n\t\"./sougyokeikaku-excel\": 396,\n\t\"./sougyokeikaku-excel.png\": 396,\n\t\"./sprite-general\": 397,\n\t\"./sprite-general.png\": 397,\n\t\"./suchi-banner-middle\": 398,\n\t\"./suchi-banner-middle.jpg\": 398,\n\t\"./suchi-banner-small\": 399,\n\t\"./suchi-banner-small.png\": 399,\n\t\"./suuchi-banner\": 400,\n\t\"./suuchi-banner.svg\": 400,\n\t\"./suuchi-phone\": 401,\n\t\"./suuchi-phone.png\": 401,\n\t\"./tag--yayoi-data-support\": 402,\n\t\"./tag--yayoi-data-support.svg\": 402,\n\t\"./top-fv--mv\": 403,\n\t\"./top-fv--mv.svg\": 403,\n\t\"./top-useful-situations-1\": 404,\n\t\"./top-useful-situations-1.svg\": 404,\n\t\"./top-useful-situations-2\": 405,\n\t\"./top-useful-situations-2.svg\": 405,\n\t\"./top-useful-situations-3\": 406,\n\t\"./top-useful-situations-3.svg\": 406,\n\t\"./top-useful-situations-4\": 407,\n\t\"./top-useful-situations-4.svg\": 407,\n\t\"./wave\": 408,\n\t\"./wave.png\": 408,\n\t\"./wave_registered\": 409,\n\t\"./wave_registered.png\": 409,\n\t\"./wave_sp\": 410,\n\t\"./wave_sp.png\": 410,\n\t\"./wave_white\": 411,\n\t\"./wave_white.png\": 411\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 419;","module.exports = __webpack_public_path__ + \"media/images/bnr--kaikei--sp-90f532aca050b92b9d63f1c7417d74a6.webp\";","module.exports = __webpack_public_path__ + \"media/images/bnr--kaikei--wide--pc-ddefea7bff75781ae8a4902c8f46a20a.webp\";","module.exports = __webpack_public_path__ + \"media/images/bnr--misoca--sp-263030c99ab93e34e5115c9bed991ac7.webp\";","module.exports = __webpack_public_path__ + \"media/images/bnr--misoca--wide--pc-793bb597db3c4c0f00ace3227b0bfa47.webp\";","module.exports = __webpack_public_path__ + \"media/images/bnr--shinkoku--sp-1dd38d24a1a3cd8a0a8038147fb10869.webp\";","module.exports = __webpack_public_path__ + \"media/images/bnr--shinkoku--wide--pc-c44598f194dcbc634fee375c861acb7e.webp\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_01-30024428528d9cc4dded8b215c6283d2.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_02-b78a9f57048dcc1b01e4fa21c8cbefad.jpg\";","module.exports = __webpack_public_path__ + \"media/images/mail/mail_banner_03-3590a91b528e95bb4c12bc7be53600a4.jpg\";","// 創業計画書の入力フォーム上でエンターを押してもサブミットしない\n$(function() {\n  $(\"#sogyo_keikaku_form\").on(\"keypress\", function (event) {\n    var isTextarea = false;\n    $(\".js-textarea\").each(function(){\n      if($(event.target).attr('id') == $(this).attr('id')) {\n        isTextarea = true;\n      }\n    });\n\n    var keyPressed = event.keyCode || event.which;\n    if (!isTextarea && keyPressed === 13) {\n        event.preventDefault();\n        return false;\n    }\n  });\n});\n\n$(function() {\n  $(\".js-validate\").on('input', function (e) {\n    let isValid = true;\n    const targetName = e.target.dataset.targetName;\n    const targetViewType = e.target.dataset.targetViewType;\n    let targetCharCount = parseInt(e.target.dataset.targetCharCount)\n    $('[data-target-name=\"' + targetName + '\"]').each(function(){\n      const charCount = parseInt(this.dataset.targetCharCount)\n      const textLength = $(this).val().replace(/\\r?\\n/g, '');\n      if(textLength.length > charCount) {\n        isValid = false;\n        targetCharCount = charCount;\n      }\n    });\n    if (targetViewType == 'mobile_tablet') {\n      if(isValid) {\n        $(\"#\" + targetName + \"-error\" ).removeClass(\"d-block\");\n      } else {\n        $(\"#\" + targetName + \"-error\" ).html(\"このエリアの文字数の目安は\" + targetCharCount + \"文字です。<br>文字数をオーバーすると、エクセルできれいに表示されない可能性があります。\");\n        $(\"#\" + targetName + \"-error\" ).addClass(\"d-block\");\n      }\n    } else {\n      if(isValid) {\n        $(\"#\" + targetName + \"-error\" ).removeClass(\"d-block\");\n      } else {\n        if(targetName == \"sogyodoki\"){\n          $(\"#\" + targetName + \"-error\" ).text(\"目安の1行あたり全角文字数 \" + targetCharCount + \" を超えて入力されている行があります。あまり文字数が増えると読みにくくなりますのでご注意ください\");\n        } else {\n          $(\"#\" + targetName + \"-error\" ).text(\"目安の全角文字数 \" + targetCharCount + \" を超えて入力されています。あまり文字数が増えると読みにくくなりますのでご注意ください\");\n        }\n        $(\"#\" + targetName + \"-error\" ).addClass(\"d-block\");\n      }\n    }\n  });\n  $(\".js-validate-textarea\").on('input', function (e) {\n    let isValid = true;\n    const targetName = e.target.dataset.targetName;\n    const targetViewType = e.target.dataset.targetViewType;\n    let targetCharCount = parseInt(e.target.dataset.targetCharCount);\n    $('[data-target-name=\"' + targetName + '\"]').each(function(){\n      const charCount = parseInt(this.dataset.targetCharCount)\n      const texts = $(this).val().split(/\\n/);\n      texts.forEach(text => {\n        if(text.length > charCount) {\n          isValid = false;\n        }\n      });\n    });\n    if (targetViewType == 'mobile_tablet') {\n      if(isValid) {\n        $(\"#\" + targetName + \"-error\" ).removeClass(\"d-block\");\n      } else {\n        if(targetName == \"sogyodoki\"){\n          $(\"#\" + targetName + \"-error\" ).html(\"このエリアの文字数の目安は1行\" + targetCharCount + \"文字\" + (targetCharCount * 4) + \"文字です。<br>文字数をオーバーすると、エクセルできれいに表示されない可能性があります。\");\n        } else {\n          $(\"#\" + targetName + \"-error\" ).html(\"このエリアの文字数の目安は\" + targetCharCount + \"文字です。<br>文字数をオーバーすると、エクセルできれいに表示されない可能性があります。\");\n        }\n        $(\"#\" + targetName + \"-error\" ).addClass(\"d-block\");\n      }\n    } else {\n      if(isValid) {\n        $(\"#\" + targetName + \"-error\" ).removeClass(\"d-block\");\n      } else {\n        $(\"#\" + targetName + \"-error\" ).text(\"目安の1行あたり全角文字数 \" + targetCharCount + \" を超えて入力されている行があります。あまり文字数が増えると読みにくくなりますのでご注意ください\");\n        $(\"#\" + targetName + \"-error\" ).addClass(\"d-block\");\n      }\n    }\n  });\n\n  $(\".js-validate\").trigger('input');\n  $(\".js-validate-textarea\").trigger('input');\n});\n\n// 知的財産権等\n// 特になしをクリックしたら「申請中」「登録済み」からチェックを外す\n$(function() {\n  $(\"#select_chizai1\").on('click', function (e) {\n    $(\"#select_chizai3\").prop('checked', false);\n    $(\"#select_chizai4\").prop('checked', false);\n  });\n});\n\n// 人数入力\n$(function() {\n  $(\".js-input-people\").on('change', function (e) {\n    SogyoKeikakuUpdateDelimitedMoney(this);\n  });\n});\n\n// パーセント入力\n// 0~100。100より大きい数値が入力された場合は100をセット。全角は半角に。マイナス入力はマイナスを削除してプラスにする。数値以外が入力された場合削除。\n$(function() {\n  $(\".input-percent\").on('change', function (e) {\n    let result = $(this).val();\n    // 全角数字の変換\n    result = result.replace(/[0-9]/g, function(s) {\n      return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);\n    });\n    // ハイフンやマイナスがある場合は削除する\n    \"-‐−‒—–―ーー─━一-\".split(\"\").forEach((hyphen) => {\n      result = result.replace(hyphen, \"\");\n    });\n\n    // 100より大きい数値が入力された場合は100をセット\n    if (Number.isFinite(parseInt(result))) {\n      if (result > 100) result = 100;\n    } else {\n      result = \"\";\n    }\n\n    $(this).val(result);\n  });\n});\n\nexport function calcSection7() {\n  setSetsubiShikinSogaku();\n  setUntenShikinSogaku();\n  setHitsuyounaShikinSogaku();\n  setChotatsuHoho();\n  checkSougakuAndSetMessage();\n}\n\n// レンダリング後にhidden fieldからtext fieldへの初期セット\n$(function() {\n  $(\".js-sogyo-keikaku-set-delimited-money\").each(function(){\n    if (this.value !== \"\") {\n      // hidde fieldからtext fieldに値をコピー\n      SogyoKeikakuSetDelimitedMoney(this);\n    }\n  });\n});\n\n// 入力フォームの中身のチェック&変更\n$(function() {\n  // ロード時に初期計算を行う\n  calcSection7();\n\n  // on-change時の処理\n  $(\".inputMoney\").on('change', function (e) {\n    // text fieldをカンマ区切り&hidden fieldへのセット\n    SogyoKeikakuUpdateDelimitedMoney(this);\n\n    // 設備資金総額または運転資金が変更の場合\n    if ($(this).attr(\"class\").includes(\"setsubiShikin\") || $(this).attr(\"class\").includes(\"untenShikin\")) {\n      // 設備資金総額の計算\n      setSetsubiShikinSogaku();\n      // 運転資金総額の計算\n      setUntenShikinSogaku();\n      // 必要な資金の計算\n      setHitsuyounaShikinSogaku();\n      // 必要な資金と調達の方法のチェック\n      checkSougakuAndSetMessage();\n    } else if ($(this).attr(\"class\").includes(\"chotatsuHoho\")){\n      // 調達の方法の合計\n      setChotatsuHoho();\n      // 必要な資金と調達の方法のチェック\n      checkSougakuAndSetMessage();\n    }\n  });\n});\n\nfunction sanitizeNumber(element) {\n  let result = $(element).val()\n  // 全角数字の変換\n  result = result.replace(/[0-9]/g, function(s) {\n    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);\n  });\n  // ハイフンやマイナスがある場合は削除する\n  \"-‐−‒—–―ーー─━一-\".split(\"\").forEach((hyphen) => {\n    result = result.replace(hyphen, \"\")\n  });\n\n  // 数値変換出来ない場合は\"\"に置換\n  result = Number.isFinite(parseInt(result)) ? result : \"\"\n\n  // 100億以上はトリムする\n  if (result.length > 9) result = result.slice(0, 9)\n\n  $(element).val(result)\n}\n\nfunction sanitizeMoney(element) {\n  let result = $(element).val()\n  // 全角数字の変換\n  result = result.replace(/[0-9]/g, function(s) {\n    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);\n  });\n  // ハイフンやマイナスがある場合は削除する\n  \"-‐−‒—–―ーー─━一-,,\".split(\"\").forEach((hyphen) => {\n    result = result.replace(hyphen, \"\")\n  });\n\n  // 数値変換出来ない場合は0に置換\n  result = Number.isFinite(parseInt(result)) ? result : 0\n\n  // 100億以上はトリムする\n  if (result.length > 5) result = result.slice(0, 5)\n\n  return parseInt(result)\n}\n\n// 設備資金総額の計算\nfunction setSetsubiShikinSogaku() {\n  let result = 0;\n  $(\".setsubiShikin\").each(function (){\n    if (Number.isFinite(parseInt($(this).val()))){\n      result += parseInt($(this).val().replace(/,/, ''));\n    }\n  })\n  $(\"#setsubiShikinSogaku\").text(result.toLocaleString('ja-JP'));\n}\n\nfunction setUntenShikinSogaku() {\n  let result = 0;\n  $(\".untenShikin\").each(function (){\n    if (Number.isFinite(parseInt($(this).val()))){\n      result += parseInt($(this).val().replace(/,/, ''));\n    }\n  })\n  $(\"#untenShikinSogaku\").text(result.toLocaleString('ja-JP'));\n}\n\nfunction setHitsuyounaShikinSogaku(){\n  let result = 0;\n  if (Number.isFinite(parseInt($(\"#setsubiShikinSogaku\").text()))){\n    result += parseInt($(\"#setsubiShikinSogaku\").text().replace(/,/, ''));\n  }\n  if (Number.isFinite(parseInt($(\"#untenShikinSogaku\").text()))){\n    result += parseInt($(\"#untenShikinSogaku\").text().replace(/,/, ''));\n  }\n  $(\"#hitsuyounaShikinSogaku\").text(result.toLocaleString('ja-JP'));\n}\n\nfunction checkSougakuAndSetMessage(){\n  const hitsuyounaShikinSogaku = Number.isFinite(parseInt($(\"#hitsuyounaShikinSogaku\").text().replace(\",\", \"\"))) ? parseInt($(\"#hitsuyounaShikinSogaku\").text().replace(\",\", \"\")) : 0;\n  const chotatsuHohoSogaku = Number.isFinite(parseInt($(\"#chotatsuHohoSogaku\").text().replace(\",\", \"\"))) ? parseInt($(\"#chotatsuHohoSogaku\").text().replace(\",\", \"\")) : 0;\n  if (hitsuyounaShikinSogaku === chotatsuHohoSogaku) {\n    $(\".main-form__feedback\").removeClass(\"d-none\");\n    $(\".main-form__feedback--error\").addClass(\"d-none\");\n    $(\"#totalHitsuyouShikin\").removeClass(\"unmatch\");\n    $(\"#totalChotatsuHoHo\").removeClass(\"unmatch\");\n    $(\"#hitsuyounaShikinSogakuErr\").addClass(\"d-none\");\n    $(\"#chotatsuHohoSogakuErr\").addClass(\"d-none\");\n    $(\"#formAmmount\").removeClass(\"error\");\n  } else {\n    $(\".main-form__feedback\").addClass(\"d-none\");\n    $(\".main-form__feedback--error\").removeClass(\"d-none\");\n    $(\"#totalHitsuyouShikin\").addClass(\"unmatch\");\n    $(\"#totalChotatsuHoHo\").addClass(\"unmatch\");\n    $(\"#hitsuyounaShikinSogakuErr\").removeClass(\"d-none\");\n    $(\"#chotatsuHohoSogakuErr\").removeClass(\"d-none\");\n    $(\"#formAmmount\").addClass(\"error\");\n  }\n  setInvalidToHitsuyoShikinAndChotatsuHoho(hitsuyounaShikinSogaku === chotatsuHohoSogaku);\n  setDisabledToSogyoBtnNext();\n  changeColorHikakuShikinSp(hitsuyounaShikinSogaku === chotatsuHohoSogaku);\n  setReturnToContentsBtnPaddingBottom();\n}\n\nfunction setDisabledToSogyoBtnNext() {\n  if ($(\"#sogyoBtnNext\").length) {\n    if ($(\"#sogyoForm7\").hasClass(\"display\") && !$(\"#feedbackError\").hasClass(\"d-none\")) {\n      $(\"#sogyoBtnNext\").prop(\"disabled\", true);\n    } else {\n      $(\"#sogyoBtnNext\").prop(\"disabled\", false);\n    }\n  }\n}\n\nfunction changeColorHikakuShikinSp(isValid) {\n  if ($(\".js-hikaku_shikin_sp\").length) {\n    if (isValid) {\n      $(\".js-hikaku_shikin_sp\").removeClass(\"unmatch\");\n    } else {\n      $(\".js-hikaku_shikin_sp\").addClass(\"unmatch\");\n    }\n  }\n}\n\nfunction setInvalidToHitsuyoShikinAndChotatsuHoho(isValid) {\n  $(\".setsubiShikin\").each(function (){\n    $(this).removeClass(\"is-invalid\");\n    if ($(this).val() && !isValid){\n      $(this).addClass(\"is-invalid\");\n    }\n  })\n  $(\".untenShikin\").each(function (){\n    $(this).removeClass(\"is-invalid\");\n    if ($(this).val() && !isValid){\n      $(this).addClass(\"is-invalid\");\n    }\n  })\n  $(\".chotatsuHoho\").each(function (){\n    $(this).removeClass(\"is-invalid\");\n    if ($(this).val() && !isValid){\n      $(this).addClass(\"is-invalid\");\n    }\n  })\n}\n\nfunction setChotatsuHoho(){\n  let result = 0;\n  $(\".chotatsuHoho\").each(function (){\n    if (Number.isFinite(parseInt($(this).val()))){\n      result += parseInt($(this).val().replace(/,/, ''));\n    }\n  })\n  $(\"#chotatsuHohoSogaku\").text(result.toLocaleString('ja-JP'));\n}\n\n// 過去の事業経験、資格有無、知財有無\n// 未選択中のフィールドをreadonlyにする(DBには保存したいため)\n$(function() {\n  toggleJigyoKeiken();\n  $('input[name=\"jfc_template[jigyokeiken]\"]').on('change', function (e) {\n    toggleJigyoKeiken();\n  });\n  toggleShikakuUmu();\n  $('input[name=\"jfc_template[shikaku_umu]\"]').on('change', function (e) {\n    toggleShikakuUmu();\n  });\n  toggleChizaiUmu();\n  $('input[name=\"jfc_template[chizai_umu]\"]').on('change', function (e) {\n    toggleChizaiUmu();\n  }); \n});\n\nfunction toggleJigyoKeiken() {\n  const checkedId = $('input[name=\"jfc_template[jigyokeiken]\"]:checked').attr('id')\n  // if 事業を経営していたことはない\n  if (checkedId == \"select_business1\") {\n    $('input[name=\"jfc_template[keizokujigyonaiyo]\"]').prop('readonly', true);\n    disableSelectField($('select[name=\"jfc_template[yametajiki_nen]\"]'));\n    disableSelectField($('select[name=\"jfc_template[yametajiki_getsu]\"]'));\n  } else if (checkedId == \"select_business2\") {\n    $('input[name=\"jfc_template[keizokujigyonaiyo]\"]').prop('readonly', false);\n    disableSelectField($('select[name=\"jfc_template[yametajiki_nen]\"]'));\n    disableSelectField($('select[name=\"jfc_template[yametajiki_getsu]\"]'));\n  } else if (checkedId == \"select_business3\") {\n    $('input[name=\"jfc_template[keizokujigyonaiyo]\"]').prop('readonly', true);\n    enableSelectField($('select[name=\"jfc_template[yametajiki_nen]\"]'));\n    enableSelectField($('select[name=\"jfc_template[yametajiki_getsu]\"]'));\n  } else {\n    $('input[name=\"jfc_template[keizokujigyonaiyo]\"]').prop('readonly', false);\n    enableSelectField($('select[name=\"jfc_template[yametajiki_nen]\"]'));\n    enableSelectField($('select[name=\"jfc_template[yametajiki_getsu]\"]'));\n  }\n}\n\nfunction toggleShikakuUmu() {\n  const checkedId = $('input[name=\"jfc_template[shikaku_umu]\"]:checked').attr('id')\n  if (checkedId == \"select_shikaku1\") {\n    $('input[name=\"jfc_template[shikakumei]\"]').prop('readonly', true);\n    $('input[name=\"jfc_template[shikakubango]\"]').prop('readonly', true);\n    disableSelectField($('select[name=\"jfc_template[shikakushutoku_nen]\"]'));\n    disableSelectField($('select[name=\"jfc_template[shikakushutoku_getsu]\"]'));\n  } else if (checkedId == \"select_shikaku2\") {\n    $('input[name=\"jfc_template[shikakumei]\"]').prop('readonly', false);\n    $('input[name=\"jfc_template[shikakubango]\"]').prop('readonly', false);\n    enableSelectField($('select[name=\"jfc_template[shikakushutoku_nen]\"]'));\n    enableSelectField($('select[name=\"jfc_template[shikakushutoku_getsu]\"]'));\n  } else {\n    $('input[name=\"jfc_template[shikakumei]\"]').prop('readonly', false);\n    $('input[name=\"jfc_template[shikakubango]\"]').prop('readonly', false);\n    enableSelectField($('select[name=\"jfc_template[shikakushutoku_nen]\"]'));\n    enableSelectField($('select[name=\"jfc_template[shikakushutoku_getsu]\"]'));\n  }\n}\n\nfunction toggleChizaiUmu() {\n  const checkedId = $('input[name=\"jfc_template[chizai_umu]\"]:checked').attr('id')\n  if (checkedId == \"select_chizai1\") {\n    $('input[name=\"jfc_template[chizai_naiyo]\"]').prop('readonly', true);\n    $('input[name=\"jfc_template[chizai_jokyo]\"]').prop('disabled', true);\n  } else if (checkedId == \"select_chizai2\") {\n    $('input[name=\"jfc_template[chizai_naiyo]\"]').prop('readonly', false);\n    $('input[name=\"jfc_template[chizai_jokyo]\"]').prop('disabled', false);\n  } else {\n    $('input[name=\"jfc_template[chizai_naiyo]\"]').prop('readonly', false);\n    $('input[name=\"jfc_template[chizai_jokyo]\"]').prop('disabled', false);\n  }\n}\n\nfunction disableSelectField(jqSelectElm) {\n  jqSelectElm.addClass('disabled')\n  jqSelectElm.children().each((i, opt)=> {\n    if(opt.selected) {\n      opt.disabled = false;\n    } else {\n      opt.disabled = true;\n    }\n  });\n}\n\nfunction enableSelectField(jqSelectElm) {\n  jqSelectElm.removeClass('disabled')\n  jqSelectElm.children().each((i, opt)=> {\n    opt.disabled = false;\n  });\n}\n\nfunction SogyoKeikakuUpdateDelimitedMoney(textFieldElement) {\n  // hidden fieldへ値をセット\n  const hiddenElementId = textFieldElement.dataset.target;\n  const hiddenElement = document.getElementById(hiddenElementId);\n  hiddenElement.value = sanitizeMoney(textFieldElement);\n\n  // text fieldにカンマを付与\n  $(textFieldElement).val(sanitizeMoney(textFieldElement).toLocaleString('ja-JP'));\n}\n\nfunction SogyoKeikakuSetDelimitedMoney(hiddenElement) {\n  // hidden fieldからtext fieldに値をコピー\n  const inputElementId = \"text_\" + hiddenElement.id;\n  const inputElement = document.getElementById(inputElementId);\n  inputElement.value = parseInt(hiddenElement.value).toLocaleString('ja-JP');\n}\n\nfunction setSogyoKeikakuMainInnerMinHeight() {\n  if ($(\"#sogyoKeikakuMainInner\").length) {\n    const offsetTop = $(\"#sogyoKeikakuMainInner\").offset().top;\n    const value = `calc(100vh - ${offsetTop}px)`;\n    $(\"#sogyoKeikakuMainInner\").css(\"min-height\", value);\n  }\n}\n\nfunction setReturnToContentsBtnPaddingBottom() {\n  if (($(\"#sogyoSticky.display\").length || $(\"#sogyoContentsSticky.display\").length) && $(\"#returnToContentsBtn\").length) {\n    let height = null;\n    if ($(\"#sogyoSticky.display\").length) {\n      height = $(\"#sogyoSticky.display\").outerHeight();\n    } else if ($(\"#sogyoContentsSticky.display\").length) {\n      height = $(\"#sogyoContentsSticky.display\").outerHeight();\n    }\n    if (height != null) {\n      const value = `${height}px`;\n      $(\"#returnToContentsBtn\").css(\"padding-bottom\", value);\n    }\n  }\n}\n\ntry {\n  //スマホページ遷移\n  let currentPage = \"\";\n  function toggleForm() {\n    var feedbacks = document.getElementsByClassName(\"main-form__feedback--sp\");\n    var feedbackArray = Array.from(feedbacks);\n    var formAmmount = document.getElementById(\"formAmmount\");\n    if (currentPage === \"Contents\") {\n      document.getElementById(\"sogyoFormContents\").classList.add(\"display\");\n      document.getElementById(\"sogyoContentsSticky\").classList.add(\"display\");\n      // document.getElementById(\"sogyoBtnReverseFinal\").classList.remove(\"display\");\n      document.getElementById(\"sogyoSticky\").classList.remove(\"display\");\n      document.getElementById(\"sogyo-menu\").classList.remove(\"display\");\n      document.getElementById(\"sogyoBtnContents\").classList.remove(\"display\");\n      document.getElementById(\"sogyoKeikakuMainWrapper\").classList.remove(\"display\");\n      for (let i = 0; i < 10; i++) {\n        let formId = \"sogyoForm\" + i.toString();\n        let btnId = \"sogyoNavBtn\" + i.toString();\n        document.getElementById(formId).classList.remove(\"display\");\n        document\n          .getElementById(btnId)\n          .classList.remove(\"sogyo-menu__btn--selected\");\n      }\n      feedbackArray.forEach((feedback) => feedback.classList.remove(\"display\"));\n      formAmmount.classList.remove(\"display\");\n    } else {\n      document.getElementById(\"sogyoFormContents\").classList.remove(\"display\");\n      document\n        .getElementById(\"sogyoContentsSticky\")\n        .classList.remove(\"display\");\n      // document.getElementById(\"sogyoBtnReverseFinal\").classList.remove(\"display\");\n      document.getElementById(\"sogyo-menu\").classList.add(\"display\");\n      document.getElementById(\"sogyoBtnContents\").classList.add(\"display\");\n      document.getElementById(\"sogyoKeikakuMainWrapper\").classList.add(\"display\");\n      for (let i = 0; i < 10; i++) {\n        let formId = \"sogyoForm\" + i.toString();\n        let btnId = \"sogyoNavBtn\" + i.toString();\n        if (i.toString() === currentPage) {\n          document.getElementById(formId).classList.add(\"display\");\n          document\n            .getElementById(btnId)\n            .classList.add(\"sogyo-menu__btn--selected\");\n        } else {\n          document.getElementById(formId).classList.remove(\"display\");\n          document\n            .getElementById(btnId)\n            .classList.remove(\"sogyo-menu__btn--selected\");\n        }\n      }\n      if (currentPage === \"9\") {\n        document.getElementById(\"sogyoContentsSticky\").classList.add(\"display\");\n        // document.getElementById(\"sogyoBtnReverseFinal\").classList.add(\"display\");\n        document.getElementById(\"sogyoSticky\").classList.remove(\"display\");\n      } else {\n        document.getElementById(\"sogyoSticky\").classList.add(\"display\");\n      }\n\n      if (currentPage === \"7\") {\n        feedbackArray.forEach((feedback) => feedback.classList.add(\"display\"));\n        formAmmount.classList.add(\"display\");\n      } else {\n        feedbackArray.forEach((feedback) =>\n          feedback.classList.remove(\"display\")\n        );\n        formAmmount.classList.remove(\"display\");\n      }\n      setSogyoKeikakuMainInnerMinHeight();\n      setReturnToContentsBtnPaddingBottom();\n    }\n    setDisabledToSogyoBtnNext();\n    toggleSogyoBtnReverseFirstSogyoBtnReverseFinal();\n\n    window.scroll({\n      top: 0,\n      behavior: \"instant\",\n    });\n\n    document.getElementById(\"sogyo_keikaku_form_sp_current_page\").value = currentPage;\n  }\n  window.addEventListener(\"load\", function() {\n    if (document.getElementById(\"sogyo_keikaku_form_sp_current_page\") != null && document.getElementById(\"sogyo_keikaku_form_sp_current_page\").value != \"\") {\n      currentPage = document.getElementById(\"sogyo_keikaku_form_sp_current_page\").value;\n      toggleForm();\n    }\n  });\n  function handleStepBtn(btnId) {\n    if (document.getElementById(btnId)) {\n      document.getElementById(btnId).addEventListener(\"click\", function () {\n        let idNumber = btnId.replace(\"sogyoBtn\", \"\");\n        currentPage = idNumber;\n        toggleForm();\n      });\n    }\n  }\n  if (document.getElementById(\"sogyoBtnStepContents\")) {\n    document\n      .getElementById(\"sogyoBtnStepContents\")\n      .addEventListener(\"click\", function () {\n        currentPage = \"Contents\";\n        toggleForm();\n      });\n  }\n  function handleStepNavBtn(btnId) {\n    if (document.getElementById(btnId)) {\n      document.getElementById(btnId).addEventListener(\"click\", function () {\n        let idNumber = btnId.replace(\"sogyoNavBtn\", \"\");\n        currentPage = idNumber;\n        toggleForm();\n      });\n    }\n  }\n  function handleStepReverseBtn() {\n    if (document.getElementById(\"sogyoBtnReverse\")) {\n      document\n        .getElementById(\"sogyoBtnReverse\")\n        .addEventListener(\"click\", function () {\n          if (currentPage === \"0\") {\n            currentPage = \"Contents\";\n          } else {\n            currentPage = (parseInt(currentPage) - 1).toString();\n          }\n          toggleForm();\n        });\n    }\n    if (document.getElementById(\"sogyoBtnReverseFinal\")) {\n      document\n        .getElementById(\"sogyoBtnReverseFinal\")\n        .addEventListener(\"click\", function () {\n          if (currentPage === \"9\") {\n            currentPage = \"8\";\n            toggleForm();\n          }\n        });\n    }\n  }\n  function handleStepNextBtn() {\n    if (document.getElementById(\"sogyoBtnNext\")) {\n      document\n        .getElementById(\"sogyoBtnNext\")\n        .addEventListener(\"click\", function () {\n          currentPage = (parseInt(currentPage) + 1).toString();\n          toggleForm();\n        });\n    }\n  }\n\n  handleStepBtn(\"sogyoBtn0\");\n  handleStepBtn(\"sogyoBtn1\");\n  handleStepBtn(\"sogyoBtn2\");\n  handleStepBtn(\"sogyoBtn3\");\n  handleStepBtn(\"sogyoBtn4\");\n  handleStepBtn(\"sogyoBtn5\");\n  handleStepBtn(\"sogyoBtn6\");\n  handleStepBtn(\"sogyoBtn7\");\n  handleStepBtn(\"sogyoBtn8\");\n  handleStepBtn(\"sogyoBtn9\");\n  handleStepBtn(\"sogyoBtnContents\");\n  handleStepNavBtn(\"sogyoNavBtn0\");\n  handleStepNavBtn(\"sogyoNavBtn1\");\n  handleStepNavBtn(\"sogyoNavBtn2\");\n  handleStepNavBtn(\"sogyoNavBtn3\");\n  handleStepNavBtn(\"sogyoNavBtn4\");\n  handleStepNavBtn(\"sogyoNavBtn5\");\n  handleStepNavBtn(\"sogyoNavBtn6\");\n  handleStepNavBtn(\"sogyoNavBtn7\");\n  handleStepNavBtn(\"sogyoNavBtn8\");\n  handleStepNavBtn(\"sogyoNavBtn9\");\n  handleStepReverseBtn();\n  handleStepNextBtn();\n\n  //項目設問のプルダウン\n  function toggleAccordion(btnId, accordionId, iconId) {\n    var accordionBtn = document.getElementById(btnId);\n    var accordion = document.getElementById(accordionId);\n    var icon = document.getElementById(iconId);\n    if (accordionBtn && accordion && icon) {\n      accordionBtn.addEventListener(\"click\", function () {\n        if (accordion.classList.contains(\"display\")) {\n          accordion.classList.remove(\"display\");\n          icon.classList.remove(\"display\");\n        } else {\n          accordion.classList.add(\"display\");\n          icon.classList.add(\"display\");\n        }\n      });\n    }\n  }\n\n  function toggleAccordionIconOnLoad(accordionId, iconId) {\n    var accordion = document.getElementById(accordionId);\n    var icon = document.getElementById(iconId);\n    if (accordion && icon) {\n      if (accordion.classList.contains(\"display\")) {\n        icon.classList.add(\"display\");\n      } else {\n        icon.classList.remove(\"display\");\n      }\n    }\n  }\n\n  function displayInputBySelect(selectId, inputId, keyword) {\n    document.addEventListener(\"DOMContentLoaded\", function () {\n      var selectElement = document.getElementById(selectId);\n      var targetDiv = document.getElementById(inputId);\n\n      if (selectElement) {\n        selectElement.addEventListener(\"change\", function () {\n          var selectedValue = selectElement.value;\n\n          if (selectedValue === keyword) {\n            targetDiv.classList.add(\"display\");\n          } else {\n            targetDiv.classList.remove(\"display\");\n          }\n        });\n      }\n    });\n  }\n\n  for (let i = 1; i <= 31; i++) {\n    const btnId = `formAccordionBtn${i}`;\n    const contentId = `formAccordion${i}`;\n    const iconId = `formAccordionIcon${i}`;\n    toggleAccordion(btnId, contentId, iconId);\n    toggleAccordionIconOnLoad(contentId, iconId);\n  }\n\n  // displayInputBySelect(\"select_career1\", \"additionalInput1\", \"keizoku\");\n  // displayInputBySelect(\"select_career1\", \"additionalInput2\", \"kako\");\n  // displayInputBySelect(\"select_career2\", \"additionalInput3\", \"ari\");\n  // displayInputBySelect(\"select_career3\", \"additionalInput4\", \"ari\");\n\n  //入力チェック\n\n  //0\n  const sogyokeikakushomei = document.getElementById(\n    \"jfc_template_sogyokeikakushomei\"\n  );\n  const templatefullname = document.getElementById(\"jfc_template_fullname\");\n  const templatesakuseibi = document.getElementById(\"jfc_template_sakuseibi\");\n  sogyokeikakushomei.addEventListener(\"input\", handleInputChangeItem0);\n  templatefullname.addEventListener(\"input\", handleInputChangeItem0);\n  templatesakuseibi.addEventListener(\"input\", handleInputChangeItem0);\n  window.addEventListener(\"load\", handleInputChangeItem0);\n  function handleInputChangeItem0() {\n    if (document.getElementById(\"inputStatus0\") === null) {\n      return;\n    }\n    if (\n      sogyokeikakushomei.value !== \"\" ||\n      templatefullname.value !== \"\" ||\n      templatesakuseibi.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus0\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus0\").classList.remove(\"inputted\");\n    }\n  }\n\n  //1\n  const sogyodoki1 = document.getElementById(\"jfc_template_sogyodoki_1\");\n  const sogyodoki2 = document.getElementById(\"jfc_template_sogyodoki_2\");\n  const sogyodoki3 = document.getElementById(\"jfc_template_sogyodoki_3\");\n  const sogyodoki4 = document.getElementById(\"jfc_template_sogyodoki_4\");\n  sogyodoki1.addEventListener(\"input\", handleInputChangeItem1);\n  sogyodoki2.addEventListener(\"input\", handleInputChangeItem1);\n  sogyodoki3.addEventListener(\"input\", handleInputChangeItem1);\n  sogyodoki4.addEventListener(\"input\", handleInputChangeItem1);\n  window.addEventListener(\"load\", handleInputChangeItem1);\n  function handleInputChangeItem1() {\n    if (document.getElementById(\"inputStatus1\") === null) {\n      return;\n    }\n    if (\n      sogyodoki1.value !== \"\" ||\n      sogyodoki2.value !== \"\" ||\n      sogyodoki3.value !== \"\" ||\n      sogyodoki4.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus1\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus1\").classList.remove(\"inputted\");\n    }\n  }\n\n  //2\n  const keirekiNen1 = document.getElementById(\n    \"jfc_template_keieisyakeireki_nen_1\"\n  );\n  const keirekiGetsu1 = document.getElementById(\n    \"jfc_template_keieisyakeireki_getsu_1\"\n  );\n  const keirekiNaiyo1 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_1\"\n  );\n  const keirekiNen2 = document.getElementById(\n    \"jfc_template_keieisyakeireki_nen_2\"\n  );\n  const keirekiGetsu2 = document.getElementById(\n    \"jfc_template_keieisyakeireki_getsu_2\"\n  );\n  const keirekiNaiyo2 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_2\"\n  );\n  const keirekiNen3 = document.getElementById(\n    \"jfc_template_keieisyakeireki_nen_3\"\n  );\n  const keirekiGetsu3 = document.getElementById(\n    \"jfc_template_keieisyakeireki_getsu_3\"\n  );\n  const keirekiNaiyo3 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_3\"\n  );\n  const keirekiNen4 = document.getElementById(\n    \"jfc_template_keieisyakeireki_nen_4\"\n  );\n  const keirekiGetsu4 = document.getElementById(\n    \"jfc_template_keieisyakeireki_getsu_4\"\n  );\n  const keirekiNaiyo4 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_4\"\n  );\n  const keirekiNen5 = document.getElementById(\n    \"jfc_template_keieisyakeireki_nen_5\"\n  );\n  const keirekiGetsu5 = document.getElementById(\n    \"jfc_template_keieisyakeireki_getsu_5\"\n  );\n  const keirekiNaiyo5 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_5\"\n  );\n  const keirekiNen6 = document.getElementById(\n    \"jfc_template_keieisyakeireki_nen_6\"\n  );\n  const keirekiGetsu6 = document.getElementById(\n    \"jfc_template_keieisyakeireki_getsu_6\"\n  );\n  const keirekiNaiyo6 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_6\"\n  );\n  keirekiNen1.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiGetsu1.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNaiyo1.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNen2.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiGetsu2.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNaiyo2.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNen3.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiGetsu3.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNaiyo3.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNen4.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiGetsu4.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNaiyo4.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNen5.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiGetsu5.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNaiyo5.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNen6.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiGetsu6.addEventListener(\"input\", handleInputChangeRyakureki);\n  keirekiNaiyo6.addEventListener(\"input\", handleInputChangeRyakureki);\n  window.addEventListener(\"load\", handleInputChangeRyakureki);\n  function handleInputChangeRyakureki() {\n    if (document.getElementById(\"formAccordionCheck17\") === null) {\n      return;\n    }\n    if (\n      keirekiNen1.value !== \"\" ||\n      keirekiGetsu1.value !== \"\" ||\n      keirekiNaiyo1.value !== \"\" ||\n      keirekiNen2.value !== \"\" ||\n      keirekiGetsu2.value !== \"\" ||\n      keirekiNaiyo2.value !== \"\" ||\n      keirekiNen3.value !== \"\" ||\n      keirekiGetsu3.value !== \"\" ||\n      keirekiNaiyo3.value !== \"\" ||\n      keirekiNen4.value !== \"\" ||\n      keirekiGetsu4.value !== \"\" ||\n      keirekiNaiyo4.value !== \"\" ||\n      keirekiNen5.value !== \"\" ||\n      keirekiGetsu5.value !== \"\" ||\n      keirekiNaiyo5.value !== \"\" ||\n      keirekiNen6.value !== \"\" ||\n      keirekiGetsu6.value !== \"\" ||\n      keirekiNaiyo6.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck17\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck17\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem2();\n  }\n\n  const career1_1 = document.querySelector(\"#formAccordion1 #select_business1\");\n  const career1_2 = document.querySelector(\"#formAccordion1 #select_business2\");\n  const career1_3 = document.querySelector(\"#formAccordion1 #select_business3\");\n  career1_1.addEventListener(\"change\", handleInputChangeCarrer1);\n  career1_2.addEventListener(\"change\", handleInputChangeCarrer1);\n  career1_3.addEventListener(\"change\", handleInputChangeCarrer1);\n  window.addEventListener(\"load\", handleInputChangeCarrer1);\n  function handleInputChangeCarrer1() {\n    if (\n      career1_1.checked ||\n      career1_2.checked ||\n      career1_3.checked\n    ) {\n      document.getElementById(\"formAccordionCheck1\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck1\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem2();\n\n    const additionalInput1 = document.getElementById(\"additionalInput1\");\n    const additionalInput2 = document.getElementById(\"additionalInput2\");\n    if (career1_1.checked) {\n      additionalInput1.classList.remove(\"display\");\n      additionalInput2.classList.remove(\"display\");\n    } else if (career1_2.checked) {\n      additionalInput1.classList.add(\"display\");\n      additionalInput2.classList.remove(\"display\");\n    } else if (career1_3.checked) {\n      additionalInput1.classList.remove(\"display\");\n      additionalInput2.classList.add(\"display\");\n    } else {\n      additionalInput1.classList.remove(\"display\");\n      additionalInput2.classList.remove(\"display\");\n    }\n  }\n\n  const career2_1 = document.querySelector(\"#formAccordion2 #select_shikaku1\");\n  const career2_2 = document.querySelector(\"#formAccordion2 #select_shikaku2\");\n  career2_1.addEventListener(\"change\", handleInputChangeCarrer2);\n  career2_2.addEventListener(\"change\", handleInputChangeCarrer2);\n  window.addEventListener(\"load\", handleInputChangeCarrer2);\n  function handleInputChangeCarrer2() {\n    if (\n      career2_1.checked ||\n      career2_2.checked\n    ) {\n      document.getElementById(\"formAccordionCheck2\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck2\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem2();\n\n    const additionalInput3 = document.getElementById(\"additionalInput3\");\n    if (career2_1.checked) {\n      additionalInput3.classList.remove(\"display\");\n    } else if (career2_2.checked) {\n      additionalInput3.classList.add(\"display\");\n    } else {\n      additionalInput3.classList.remove(\"display\");\n    }\n  }\n\n  const career3_1 = document.querySelector(\"#formAccordion3 #select_chizai1\");\n  const career3_2 = document.querySelector(\"#formAccordion3 #select_chizai2\");\n  career3_1.addEventListener(\"change\", handleInputChangeCarrer3);\n  career3_2.addEventListener(\"change\", handleInputChangeCarrer3);\n  window.addEventListener(\"load\", handleInputChangeCarrer3);\n  function handleInputChangeCarrer3() {\n    if (\n      career3_1.checked ||\n      career3_2.checked\n    ) {\n      document.getElementById(\"formAccordionCheck3\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck3\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem2();\n\n    const additionalInput4 = document.getElementById(\"additionalInput4\");\n    if (career3_1.checked) {\n      additionalInput4.classList.remove(\"display\");\n    } else if (career3_2.checked) {\n      additionalInput4.classList.add(\"display\");\n    } else {\n      additionalInput4.classList.remove(\"display\");\n    }\n  }\n\n  function handleInputChangeItem2() {\n    if (\n      keirekiNen1.value !== \"\" ||\n      keirekiGetsu1.value !== \"\" ||\n      keirekiNaiyo1.value !== \"\" ||\n      keirekiNen2.value !== \"\" ||\n      keirekiGetsu2.value !== \"\" ||\n      keirekiNaiyo2.value !== \"\" ||\n      keirekiNen3.value !== \"\" ||\n      keirekiGetsu3.value !== \"\" ||\n      keirekiNaiyo3.value !== \"\" ||\n      keirekiNen4.value !== \"\" ||\n      keirekiGetsu4.value !== \"\" ||\n      keirekiNaiyo4.value !== \"\" ||\n      keirekiNen5.value !== \"\" ||\n      keirekiGetsu5.value !== \"\" ||\n      keirekiNaiyo5.value !== \"\" ||\n      keirekiNen6.value !== \"\" ||\n      keirekiGetsu6.value !== \"\" ||\n      keirekiNaiyo6.value !== \"\" ||\n      career1_1.checked ||\n      career1_2.checked ||\n      career1_3.checked ||\n      career2_1.checked ||\n      career2_2.checked ||\n      career3_1.checked ||\n      career3_2.checked\n    ) {\n      document.getElementById(\"inputStatus2\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus2\").classList.remove(\"inputted\");\n    }\n  }\n\n  //3\n  const shohingaiyo1 = document.getElementById(\"jfc_template_shohingaiyo_1\");\n  const shohinshare1 = document.getElementById(\"jfc_template_shohin_share_1\");\n  const shohingaiyo2 = document.getElementById(\"jfc_template_shohingaiyo_2\");\n  const shohinshare2 = document.getElementById(\"jfc_template_shohin_share_2\");\n  const shohingaiyo3 = document.getElementById(\"jfc_template_shohingaiyo_3\");\n  const shohinshare3 = document.getElementById(\"jfc_template_shohin_share_3\");\n  shohingaiyo1.addEventListener(\"input\", handleInputChangeShohin);\n  shohinshare1.addEventListener(\"input\", handleInputChangeShohin);\n  shohingaiyo2.addEventListener(\"input\", handleInputChangeShohin);\n  shohinshare2.addEventListener(\"input\", handleInputChangeShohin);\n  shohingaiyo3.addEventListener(\"input\", handleInputChangeShohin);\n  shohinshare3.addEventListener(\"input\", handleInputChangeShohin);\n  window.addEventListener(\"load\", handleInputChangeShohin);\n  function handleInputChangeShohin() {\n    if (\n      shohingaiyo1.value !== \"\" ||\n      shohinshare1.value !== \"\" ||\n      shohingaiyo2.value !== \"\" ||\n      shohinshare2.value !== \"\" ||\n      shohingaiyo3.value !== \"\" ||\n      shohinshare3.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionShohin\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionShohin\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem3();\n  }\n\n  const salesPoint1 = document.getElementById(\"jfc_template_sales_point_1\");\n  const salesPoint2 = document.getElementById(\"jfc_template_sales_point_2\");\n  const salesPoint3 = document.getElementById(\"jfc_template_sales_point_3\");\n  salesPoint1.addEventListener(\"input\", handleInputChangeSalesPoint);\n  salesPoint2.addEventListener(\"input\", handleInputChangeSalesPoint);\n  salesPoint3.addEventListener(\"input\", handleInputChangeSalesPoint);\n  window.addEventListener(\"load\", handleInputChangeSalesPoint);\n  function handleInputChangeSalesPoint() {\n    if (\n      salesPoint1.value !== \"\" ||\n      salesPoint2.value !== \"\" ||\n      salesPoint3.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck5\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck5\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem3();\n  }\n\n  const hambaiTarget1 = document.getElementById(\"jfc_template_hambai_target_1\");\n  const hambaiTarget2 = document.getElementById(\"jfc_template_hambai_target_2\");\n  const hambaiTarget3 = document.getElementById(\"jfc_template_hambai_target_3\");\n  hambaiTarget1.addEventListener(\"input\", handleInputChangeHanbaiTarget);\n  hambaiTarget2.addEventListener(\"input\", handleInputChangeHanbaiTarget);\n  hambaiTarget3.addEventListener(\"input\", handleInputChangeHanbaiTarget);\n  window.addEventListener(\"load\", handleInputChangeHanbaiTarget);\n  function handleInputChangeHanbaiTarget() {\n    if (\n      hambaiTarget1.value !== \"\" ||\n      hambaiTarget2.value !== \"\" ||\n      hambaiTarget3.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck6\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck6\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem3();\n  }\n\n  const shijokankyo1 = document.getElementById(\"jfc_template_shijokankyo_1\");\n  const shijokankyo2 = document.getElementById(\"jfc_template_shijokankyo_2\");\n  const shijokankyo3 = document.getElementById(\"jfc_template_shijokankyo_3\");\n  shijokankyo1.addEventListener(\"input\", handleInputChangeShijo);\n  shijokankyo2.addEventListener(\"input\", handleInputChangeShijo);\n  shijokankyo3.addEventListener(\"input\", handleInputChangeShijo);\n  window.addEventListener(\"load\", handleInputChangeShijo);\n  function handleInputChangeShijo() {\n    if (\n      shijokankyo1.value !== \"\" ||\n      shijokankyo2.value !== \"\" ||\n      shijokankyo3.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck7\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck7\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem3();\n  }\n\n  function handleInputChangeItem3() {\n    if (\n      shohingaiyo1.value !== \"\" ||\n      shohinshare1.value !== \"\" ||\n      shohingaiyo2.value !== \"\" ||\n      shohinshare2.value !== \"\" ||\n      shohingaiyo3.value !== \"\" ||\n      shohinshare3.value !== \"\" ||\n      salesPoint1.value !== \"\" ||\n      salesPoint2.value !== \"\" ||\n      salesPoint3.value !== \"\" ||\n      hambaiTarget1.value !== \"\" ||\n      hambaiTarget2.value !== \"\" ||\n      hambaiTarget3.value !== \"\" ||\n      shijokankyo1.value !== \"\" ||\n      shijokankyo2.value !== \"\" ||\n      shijokankyo3.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus3\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus3\").classList.remove(\"inputted\");\n    }\n  }\n\n  //4\n  const hambaisakimei1 = document.getElementById(\n    \"jfc_template_hambaisakimei_1\"\n  );\n  const hambaisakimeiKana1 = document.getElementById(\n    \"jfc_template_hambaisakimei_kana_1\"\n  );\n  const hambaisakiShozaichi1 = document.getElementById(\n    \"jfc_template_hambaisaki_shozaichi_1\"\n  );\n  const hambaisakiShare1 = document.getElementById(\n    \"jfc_template_hambaisaki_share_1\"\n  );\n  const hambaisakikakewariai1 = document.getElementById(\n    \"jfc_template_hambaisaki_kakewariai_1\"\n  );\n  const hambaisakishimebi1 = document.getElementById(\n    \"jfc_template_hambaisaki_shimebi_1\"\n  );\n  const hambaisakiKaishubi1 = document.getElementById(\n    \"jfc_template_hambaisaki_kaishubi_1\"\n  );\n  const hambaisakimei2 = document.getElementById(\n    \"jfc_template_hambaisakimei_2\"\n  );\n  const hambaisakimeiKana2 = document.getElementById(\n    \"jfc_template_hambaisakimei_kana_2\"\n  );\n  const hambaisakiShozaichi2 = document.getElementById(\n    \"jfc_template_hambaisaki_shozaichi_2\"\n  );\n  const hambaisakiShare2 = document.getElementById(\n    \"jfc_template_hambaisaki_share_2\"\n  );\n  const hambaisakikakewariai2 = document.getElementById(\n    \"jfc_template_hambaisaki_kakewariai_2\"\n  );\n  const hambaisakishimebi2 = document.getElementById(\n    \"jfc_template_hambaisaki_shimebi_2\"\n  );\n  const hambaisakiKaishubi2 = document.getElementById(\n    \"jfc_template_hambaisaki_kaishubi_2\"\n  );\n  const hambaisakiTorihikisakisu = document.getElementById(\n    \"jfc_template_hambaisaki_torihikisakisu\"\n  );\n  const hambaisakiShareHoka = document.getElementById(\n    \"jfc_template_hambaisaki_share_hoka\"\n  );\n  const hambaisakiKakewariaiHoka = document.getElementById(\n    \"jfc_template_hambaisaki_kakewariai_hoka\"\n  );\n  const hambaisakiShimebiHoka = document.getElementById(\n    \"jfc_template_hambaisaki_shimebi_hoka\"\n  );\n  const hambaisakiKaishubiHoka = document.getElementById(\n    \"jfc_template_hambaisaki_kaishubi_hoka\"\n  );\n  hambaisakimei1.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakimeiKana1.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiShozaichi1.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiShare1.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakikakewariai1.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakishimebi1.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiKaishubi1.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakimei2.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakimeiKana2.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiShozaichi2.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiShare2.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakikakewariai2.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakishimebi2.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiKaishubi2.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiTorihikisakisu.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiShareHoka.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiKakewariaiHoka.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiShimebiHoka.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  hambaisakiKaishubiHoka.addEventListener(\"input\", handleInputChangeHanbaisaki);\n  window.addEventListener(\"load\", handleInputChangeHanbaisaki);\n  function handleInputChangeHanbaisaki() {\n    if (\n      hambaisakimei1.value !== \"\" ||\n      hambaisakimeiKana1.value !== \"\" ||\n      hambaisakiShozaichi1.value !== \"\" ||\n      hambaisakiShare1.value !== \"\" ||\n      hambaisakikakewariai1.value !== \"\" ||\n      hambaisakishimebi1.value !== \"\" ||\n      hambaisakiKaishubi1.value !== \"\" ||\n      hambaisakimei2.value !== \"\" ||\n      hambaisakimeiKana2.value !== \"\" ||\n      hambaisakiShozaichi2.value !== \"\" ||\n      hambaisakiShare2.value !== \"\" ||\n      hambaisakikakewariai2.value !== \"\" ||\n      hambaisakishimebi2.value !== \"\" ||\n      hambaisakiKaishubi2.value !== \"\" ||\n      hambaisakiTorihikisakisu.value !== \"\" ||\n      hambaisakiShareHoka.value !== \"\" ||\n      hambaisakiKakewariaiHoka.value !== \"\" ||\n      hambaisakiShimebiHoka.value !== \"\" ||\n      hambaisakiKaishubiHoka.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck8\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck8\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem4();\n  }\n\n  const shiiresakimei1 = document.getElementById(\n    \"jfc_template_shiiresakimei_1\"\n  );\n  const shiiresakimeiKana1 = document.getElementById(\n    \"jfc_template_shiiresakimei_kana_1\"\n  );\n  const shiiresakiShozaichi1 = document.getElementById(\n    \"jfc_template_shiiresaki_shozaichi_1\"\n  );\n  const shiiresakiShare1 = document.getElementById(\n    \"jfc_template_shiiresaki_share_1\"\n  );\n  const shiiresakiKakewariai1 = document.getElementById(\n    \"jfc_template_shiiresaki_kakewariai_1\"\n  );\n  const shiiresakiShimebi1 = document.getElementById(\n    \"jfc_template_shiiresaki_shimebi_1\"\n  );\n  const shiiresakiKaishubi1 = document.getElementById(\n    \"jfc_template_shiiresaki_kaishubi_1\"\n  );\n  const shiiresakimei2 = document.getElementById(\n    \"jfc_template_shiiresakimei_2\"\n  );\n  const shiiresakimeiKana2 = document.getElementById(\n    \"jfc_template_shiiresakimei_kana_2\"\n  );\n  const shiiresakiShozaichi2 = document.getElementById(\n    \"jfc_template_shiiresaki_shozaichi_2\"\n  );\n  const shiiresakiShare2 = document.getElementById(\n    \"jfc_template_shiiresaki_share_2\"\n  );\n  const shiiresakiKakewariai2 = document.getElementById(\n    \"jfc_template_shiiresaki_kakewariai_2\"\n  );\n  const shiiresakiShimebi2 = document.getElementById(\n    \"jfc_template_shiiresaki_shimebi_2\"\n  );\n  const shiiresakiKaishubi2 = document.getElementById(\n    \"jfc_template_shiiresaki_kaishubi_2\"\n  );\n  const shiiresakitorihikisakisu = document.getElementById(\n    \"jfc_template_shiiresaki_torihikisakisu\"\n  );\n  const shiiresakishareHoka = document.getElementById(\n    \"jfc_template_shiiresaki_share_hoka\"\n  );\n  const shiiresakikakewariaiHoka = document.getElementById(\n    \"jfc_template_shiiresaki_kakewariai_hoka\"\n  );\n  const shiiresakishimebiHoka = document.getElementById(\n    \"jfc_template_shiiresaki_shimebi_hoka\"\n  );\n  const shiiresakiKaishubiHoka = document.getElementById(\n    \"jfc_template_shiiresaki_kaishubi_hoka\"\n  );\n  shiiresakimei1.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakimeiKana1.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiShozaichi1.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiShare1.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiKakewariai1.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiShimebi1.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiKaishubi1.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakimei2.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakimeiKana2.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiShozaichi2.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiShare2.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiKakewariai2.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiShimebi2.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiKaishubi2.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakitorihikisakisu.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakishareHoka.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakikakewariaiHoka.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakishimebiHoka.addEventListener(\"input\", handleInputChangeShiire);\n  shiiresakiKaishubiHoka.addEventListener(\"input\", handleInputChangeShiire);\n  window.addEventListener(\"load\", handleInputChangeShiire);\n  function handleInputChangeShiire() {\n    if (\n      shiiresakimei1.value !== \"\" ||\n      shiiresakimeiKana1.value !== \"\" ||\n      shiiresakiShozaichi1.value !== \"\" ||\n      shiiresakiShare1.value !== \"\" ||\n      shiiresakiKakewariai1.value !== \"\" ||\n      shiiresakiShimebi1.value !== \"\" ||\n      shiiresakiKaishubi1.value !== \"\" ||\n      shiiresakimei2.value !== \"\" ||\n      shiiresakimeiKana2.value !== \"\" ||\n      shiiresakiShozaichi2.value !== \"\" ||\n      shiiresakiShare2.value !== \"\" ||\n      shiiresakiKakewariai2.value !== \"\" ||\n      shiiresakiShimebi2.value !== \"\" ||\n      shiiresakiKaishubi2.value !== \"\" ||\n      shiiresakitorihikisakisu.value !== \"\" ||\n      shiiresakishareHoka.value !== \"\" ||\n      shiiresakikakewariaiHoka.value !== \"\" ||\n      shiiresakishimebiHoka.value !== \"\" ||\n      shiiresakiKaishubiHoka.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck9\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck9\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem4();\n  }\n\n  const gaichusakimei1 = document.getElementById(\n    \"jfc_template_gaichusakimei_1\"\n  );\n  const gaichusakimeiKana1 = document.getElementById(\n    \"jfc_template_gaichusakimei_kana_1\"\n  );\n  const gaichusakiShozaichi1 = document.getElementById(\n    \"jfc_template_gaichusaki_shozaichi_1\"\n  );\n  const gaichusakiShare1 = document.getElementById(\n    \"jfc_template_gaichusaki_share_1\"\n  );\n  const gaichusakikakewariai1 = document.getElementById(\n    \"jfc_template_gaichusaki_kakewariai_1\"\n  );\n  const gaichusakishimebi1 = document.getElementById(\n    \"jfc_template_gaichusaki_shimebi_1\"\n  );\n  const gaichusakiKaishubi1 = document.getElementById(\n    \"jfc_template_gaichusaki_kaishubi_1\"\n  );\n  const gaichusakitorihikisakisu = document.getElementById(\n    \"jfc_template_gaichusaki_torihikisakisu\"\n  );\n  const gaichusakishareHoka = document.getElementById(\n    \"jfc_template_gaichusaki_share_hoka\"\n  );\n  const gaichusakikakewariaiHoka = document.getElementById(\n    \"jfc_template_gaichusaki_kakewariai_hoka\"\n  );\n  const gaichusakishimebiHoka = document.getElementById(\n    \"jfc_template_gaichusaki_shimebi_hoka\"\n  );\n  const gaichusakiKaishubiHoka = document.getElementById(\n    \"jfc_template_gaichusaki_kaishubi_hoka\"\n  );\n  gaichusakimei1.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakimeiKana1.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakiShozaichi1.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakiShare1.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakikakewariai1.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakishimebi1.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakiKaishubi1.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakitorihikisakisu.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakishareHoka.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakikakewariaiHoka.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakishimebiHoka.addEventListener(\"input\", handleInputChangeGaichu);\n  gaichusakiKaishubiHoka.addEventListener(\"input\", handleInputChangeGaichu);\n  window.addEventListener(\"load\", handleInputChangeGaichu);\n  function handleInputChangeGaichu() {\n    if (\n      gaichusakimei1.value !== \"\" ||\n      gaichusakimeiKana1.value !== \"\" ||\n      gaichusakiShozaichi1.value !== \"\" ||\n      gaichusakiShare1.value !== \"\" ||\n      gaichusakikakewariai1.value !== \"\" ||\n      gaichusakishimebi1.value !== \"\" ||\n      gaichusakiKaishubi1.value !== \"\" ||\n      gaichusakitorihikisakisu.value !== \"\" ||\n      gaichusakishareHoka.value !== \"\" ||\n      gaichusakikakewariaiHoka.value !== \"\" ||\n      gaichusakishimebiHoka.value !== \"\" ||\n      gaichusakiKaishubiHoka.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck10\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck10\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem4();\n  }\n\n  const jinkenhiShimebi = document.getElementById(\n    \"jfc_template_jinkenhi_shimebi\"\n  );\n  const jinkenhiShiharaibi = document.getElementById(\n    \"jfc_template_jinkenhi_shiharaibi\"\n  );\n  const jinkenhiBonusGetsu1 = document.getElementById(\n    \"jfc_template_jinkenhi_bonus_getsu_1\"\n  );\n  const jinkenhiBonusGetsu2 = document.getElementById(\n    \"jfc_template_jinkenhi_bonus_getsu_2\"\n  );\n  jinkenhiShimebi.addEventListener(\"input\", handleInputChangeJinkenhi);\n  jinkenhiShiharaibi.addEventListener(\"input\", handleInputChangeJinkenhi);\n  jinkenhiBonusGetsu1.addEventListener(\"input\", handleInputChangeJinkenhi);\n  jinkenhiBonusGetsu2.addEventListener(\"input\", handleInputChangeJinkenhi);\n  window.addEventListener(\"load\", handleInputChangeJinkenhi);\n  function handleInputChangeJinkenhi() {\n    if (\n      jinkenhiShimebi.value !== \"\" ||\n      jinkenhiShiharaibi.value !== \"\" ||\n      jinkenhiBonusGetsu1.value !== \"\" ||\n      jinkenhiBonusGetsu2.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck11\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck11\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem4();\n  }\n\n  function handleInputChangeItem4() {\n    if (\n      hambaisakimei1.value !== \"\" ||\n      hambaisakimeiKana1.value !== \"\" ||\n      hambaisakiShozaichi1.value !== \"\" ||\n      hambaisakiShare1.value !== \"\" ||\n      hambaisakikakewariai1.value !== \"\" ||\n      hambaisakishimebi1.value !== \"\" ||\n      hambaisakiKaishubi1.value !== \"\" ||\n      hambaisakimei2.value !== \"\" ||\n      hambaisakimeiKana2.value !== \"\" ||\n      hambaisakiShozaichi2.value !== \"\" ||\n      hambaisakiShare2.value !== \"\" ||\n      hambaisakikakewariai2.value !== \"\" ||\n      hambaisakishimebi2.value !== \"\" ||\n      hambaisakiKaishubi2.value !== \"\" ||\n      hambaisakiTorihikisakisu.value !== \"\" ||\n      hambaisakiShareHoka.value !== \"\" ||\n      hambaisakiKakewariaiHoka.value !== \"\" ||\n      hambaisakiShimebiHoka.value !== \"\" ||\n      hambaisakiKaishubiHoka.value !== \"\" ||\n      shiiresakimei1.value !== \"\" ||\n      shiiresakimeiKana1.value !== \"\" ||\n      shiiresakiShozaichi1.value !== \"\" ||\n      shiiresakiShare1.value !== \"\" ||\n      shiiresakiKakewariai1.value !== \"\" ||\n      shiiresakiShimebi1.value !== \"\" ||\n      shiiresakiKaishubi1.value !== \"\" ||\n      shiiresakimei2.value !== \"\" ||\n      shiiresakimeiKana2.value !== \"\" ||\n      shiiresakiShozaichi2.value !== \"\" ||\n      shiiresakiShare2.value !== \"\" ||\n      shiiresakiKakewariai2.value !== \"\" ||\n      shiiresakiShimebi2.value !== \"\" ||\n      shiiresakiKaishubi2.value !== \"\" ||\n      shiiresakitorihikisakisu.value !== \"\" ||\n      shiiresakishareHoka.value !== \"\" ||\n      shiiresakikakewariaiHoka.value !== \"\" ||\n      shiiresakishimebiHoka.value !== \"\" ||\n      shiiresakiKaishubiHoka.value !== \"\" ||\n      gaichusakimei1.value !== \"\" ||\n      gaichusakimeiKana1.value !== \"\" ||\n      gaichusakiShozaichi1.value !== \"\" ||\n      gaichusakiShare1.value !== \"\" ||\n      gaichusakikakewariai1.value !== \"\" ||\n      gaichusakishimebi1.value !== \"\" ||\n      gaichusakiKaishubi1.value !== \"\" ||\n      gaichusakitorihikisakisu.value !== \"\" ||\n      gaichusakishareHoka.value !== \"\" ||\n      gaichusakikakewariaiHoka.value !== \"\" ||\n      gaichusakishimebiHoka.value !== \"\" ||\n      gaichusakiKaishubiHoka.value !== \"\" ||\n      jinkenhiShimebi.value !== \"\" ||\n      jinkenhiShiharaibi.value !== \"\" ||\n      jinkenhiBonusGetsu1.value !== \"\" ||\n      jinkenhiBonusGetsu2.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus4\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus4\").classList.remove(\"inputted\");\n    }\n  }\n\n  //5\n  const yakuinsu = document.getElementById(\"text_yakuinsu\");\n  const jugyoinsu = document.getElementById(\"text_jugyoinsu\");\n  const uchikazoku = document.getElementById(\"text_uchi_kazoku\");\n  const uchipart = document.getElementById(\"text_uchi_part\");\n  yakuinsu.addEventListener(\"input\", handleInputChangeItem5);\n  jugyoinsu.addEventListener(\"input\", handleInputChangeItem5);\n  uchikazoku.addEventListener(\"input\", handleInputChangeItem5);\n  uchipart.addEventListener(\"input\", handleInputChangeItem5);\n  window.addEventListener(\"load\", handleInputChangeItem5);\n  function handleInputChangeItem5() {\n    if (\n      yakuinsu.value !== \"\" ||\n      jugyoinsu.value !== \"\" ||\n      uchikazoku.value !== \"\" ||\n      uchipart.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus5\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus5\").classList.remove(\"inputted\");\n    }\n  }\n\n  //6\n  const kariiresaki1 = document.getElementById(\"jfc_template_kariiresaki_1\");\n  const usage1jigyo = document.getElementById(\"usage1_jigyo\");\n  const usage1jutaku = document.getElementById(\"usage1_jutaku\");\n  const usage1car = document.getElementById(\"usage1_car\");\n  const usage1kyoiku = document.getElementById(\"usage1_kyoiku\");\n  const usage1card = document.getElementById(\"usage1_card\");\n  const usage1sonota = document.getElementById(\"usage1_sonota\");\n  const kariirezandaka1 = document.getElementById(\"text_kariirezandaka_1\");\n  const nenkanhensaigaku1 = document.getElementById(\n    \"text_kariire_nenkanhensaigaku_1\"\n  );\n  const kariiresaki2 = document.getElementById(\"jfc_template_kariiresaki_2\");\n  const usage2jigyo = document.getElementById(\"usage2_jigyo\");\n  const usage2jutaku = document.getElementById(\"usage2_jutaku\");\n  const usage2car = document.getElementById(\"usage2_car\");\n  const usage2kyoiku = document.getElementById(\"usage2_kyoiku\");\n  const usage2card = document.getElementById(\"usage2_card\");\n  const usage2sonota = document.getElementById(\"usage2_sonota\");\n  const kariirezandaka2 = document.getElementById(\"text_kariirezandaka_2\");\n  const nenkanhensaigaku2 = document.getElementById(\n    \"text_kariire_nenkanhensaigaku_2\"\n  );\n  const kariiresaki3 = document.getElementById(\"jfc_template_kariiresaki_3\");\n  const usage3jigyo = document.getElementById(\"usage3_jigyo\");\n  const usage3jutaku = document.getElementById(\"usage3_jutaku\");\n  const usage3car = document.getElementById(\"usage3_car\");\n  const usage3kyoiku = document.getElementById(\"usage3_kyoiku\");\n  const usage3card = document.getElementById(\"usage3_card\");\n  const usage3sonota = document.getElementById(\"usage3_sonota\");\n  const kariirezandaka3 = document.getElementById(\"text_kariirezandaka_3\");\n  const nenkanhensaigaku3 = document.getElementById(\n    \"text_kariire_nenkanhensaigaku_3\"\n  );\n  kariiresaki1.addEventListener(\"input\", handleInputChangeItem6);\n  usage1jigyo.addEventListener(\"input\", handleInputChangeItem6);\n  usage1jutaku.addEventListener(\"input\", handleInputChangeItem6);\n  usage1car.addEventListener(\"input\", handleInputChangeItem6);\n  usage1kyoiku.addEventListener(\"input\", handleInputChangeItem6);\n  usage1card.addEventListener(\"input\", handleInputChangeItem6);\n  usage1sonota.addEventListener(\"input\", handleInputChangeItem6);\n  kariirezandaka1.addEventListener(\"input\", handleInputChangeItem6);\n  nenkanhensaigaku1.addEventListener(\"input\", handleInputChangeItem6);\n  kariiresaki2.addEventListener(\"input\", handleInputChangeItem6);\n  usage2jigyo.addEventListener(\"input\", handleInputChangeItem6);\n  usage2jutaku.addEventListener(\"input\", handleInputChangeItem6);\n  usage2car.addEventListener(\"input\", handleInputChangeItem6);\n  usage2kyoiku.addEventListener(\"input\", handleInputChangeItem6);\n  usage2card.addEventListener(\"input\", handleInputChangeItem6);\n  usage2sonota.addEventListener(\"input\", handleInputChangeItem6);\n  kariirezandaka2.addEventListener(\"input\", handleInputChangeItem6);\n  nenkanhensaigaku2.addEventListener(\"input\", handleInputChangeItem6);\n  kariiresaki3.addEventListener(\"input\", handleInputChangeItem6);\n  usage3jigyo.addEventListener(\"input\", handleInputChangeItem6);\n  usage3jutaku.addEventListener(\"input\", handleInputChangeItem6);\n  usage3car.addEventListener(\"input\", handleInputChangeItem6);\n  usage3kyoiku.addEventListener(\"input\", handleInputChangeItem6);\n  usage3card.addEventListener(\"input\", handleInputChangeItem6);\n  usage3sonota.addEventListener(\"input\", handleInputChangeItem6);\n  kariirezandaka3.addEventListener(\"input\", handleInputChangeItem6);\n  nenkanhensaigaku3.addEventListener(\"input\", handleInputChangeItem6);\n  window.addEventListener(\"load\", handleInputChangeItem6);\n  function handleInputChangeItem6() {\n    if (\n      kariiresaki1.value !== \"\" ||\n      usage1jigyo.checked ||\n      usage1jutaku.checked ||\n      usage1car.checked ||\n      usage1kyoiku.checked ||\n      usage1card.checked ||\n      usage1sonota.checked ||\n      kariirezandaka1.value !== \"\" ||\n      nenkanhensaigaku1.value !== \"\" ||\n      kariiresaki2.value !== \"\" ||\n      usage2jigyo.checked ||\n      usage2jutaku.checked ||\n      usage2car.checked ||\n      usage2kyoiku.checked ||\n      usage2card.checked ||\n      usage2sonota.checked ||\n      kariirezandaka2.value !== \"\" ||\n      nenkanhensaigaku2.value !== \"\" ||\n      kariiresaki3.value !== \"\" ||\n      usage3jigyo.checked ||\n      usage3jutaku.checked ||\n      usage3car.checked ||\n      usage3kyoiku.checked ||\n      usage3card.checked ||\n      usage3sonota.checked ||\n      kariirezandaka3.value !== \"\" ||\n      nenkanhensaigaku3.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus6\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus6\").classList.remove(\"inputted\");\n    }\n  }\n\n  //7\n  const setsubishikingaiyo1 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_1\"\n  );\n  const setsubishikinmitsumorisaki1 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_1\"\n  );\n  const setsubishikinkingaku1 = document.getElementById(\n    \"text_setsubishikin_kingaku_1\"\n  );\n  const setsubishikingaiyo2 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_2\"\n  );\n  const setsubishikinmitsumorisaki2 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_2\"\n  );\n  const setsubishikinkingaku2 = document.getElementById(\n    \"text_setsubishikin_kingaku_2\"\n  );\n  const setsubishikingaiyo3 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_3\"\n  );\n  const setsubishikinmitsumorisaki3 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_3\"\n  );\n  const setsubishikinkingaku3 = document.getElementById(\n    \"text_setsubishikin_kingaku_3\"\n  );\n  const setsubishikingaiyo4 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_4\"\n  );\n  const setsubishikinmitsumorisaki4 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_4\"\n  );\n  const setsubishikinkingaku4 = document.getElementById(\n    \"text_setsubishikin_kingaku_4\"\n  );\n  const setsubishikingaiyo5 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_5\"\n  );\n  const setsubishikinmitsumorisaki5 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_5\"\n  );\n  const setsubishikinkingaku5 = document.getElementById(\n    \"text_setsubishikin_kingaku_5\"\n  );\n  const setsubishikingaiyo6 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_6\"\n  );\n  const setsubishikinmitsumorisaki6 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_6\"\n  );\n  const setsubishikinkingaku6 = document.getElementById(\n    \"text_setsubishikin_kingaku_6\"\n  );\n  const setsubishikingaiyo7 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_7\"\n  );\n  const setsubishikinmitsumorisaki7 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_7\"\n  );\n  const setsubishikinkingaku7 = document.getElementById(\n    \"text_setsubishikin_kingaku_7\"\n  );\n  const setsubishikingaiyo8 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_8\"\n  );\n  const setsubishikinmitsumorisaki8 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_8\"\n  );\n  const setsubishikinkingaku8 = document.getElementById(\n    \"text_setsubishikin_kingaku_8\"\n  );\n  const setsubishikingaiyo9 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_9\"\n  );\n  const setsubishikinmitsumorisaki9 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_9\"\n  );\n  const setsubishikinkingaku9 = document.getElementById(\n    \"text_setsubishikin_kingaku_9\"\n  );\n  const setsubishikingaiyo10 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_10\"\n  );\n  const setsubishikinmitsumorisaki10 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_10\"\n  );\n  const setsubishikinkingaku10 = document.getElementById(\n    \"text_setsubishikin_kingaku_10\"\n  );\n  const untenshikingaiyo1 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_1\"\n  );\n  const untenshikinkingaku1 = document.getElementById(\n    \"text_untenshikin_kingaku_1\"\n  );\n  const untenshikingaiyo2 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_2\"\n  );\n  const untenshikinkingaku2 = document.getElementById(\n    \"text_untenshikin_kingaku_2\"\n  );\n  const untenshikingaiyo3 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_3\"\n  );\n  const untenshikinkingaku3 = document.getElementById(\n    \"text_untenshikin_kingaku_3\"\n  );\n  const untenshikingaiyo4 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_4\"\n  );\n  const untenshikinkingaku4 = document.getElementById(\n    \"text_untenshikin_kingaku_4\"\n  );\n  setsubishikingaiyo1.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki1.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku1.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo2.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki2.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku2.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo3.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki3.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku3.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo4.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki4.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku4.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo5.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki5.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku5.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo6.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki6.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku6.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo7.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki7.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku7.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo8.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki8.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku8.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo9.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki9.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku9.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikingaiyo10.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinmitsumorisaki10.addEventListener(\"input\", handleInputChangeShikin);\n  setsubishikinkingaku10.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikingaiyo1.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikinkingaku1.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikingaiyo2.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikinkingaku2.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikingaiyo3.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikinkingaku3.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikingaiyo4.addEventListener(\"input\", handleInputChangeShikin);\n  untenshikinkingaku4.addEventListener(\"input\", handleInputChangeShikin);\n  window.addEventListener(\"load\", handleInputChangeShikin);\n  function handleInputChangeShikin() {\n    if (\n      setsubishikingaiyo1.value !== \"\" ||\n      setsubishikinmitsumorisaki1.value !== \"\" ||\n      setsubishikinkingaku1.value !== \"\" ||\n      setsubishikingaiyo2.value !== \"\" ||\n      setsubishikinmitsumorisaki2.value !== \"\" ||\n      setsubishikinkingaku2.value !== \"\" ||\n      setsubishikingaiyo3.value !== \"\" ||\n      setsubishikinmitsumorisaki3.value !== \"\" ||\n      setsubishikinkingaku3.value !== \"\" ||\n      setsubishikingaiyo4.value !== \"\" ||\n      setsubishikinmitsumorisaki4.value !== \"\" ||\n      setsubishikinkingaku4.value !== \"\" ||\n      setsubishikingaiyo5.value !== \"\" ||\n      setsubishikinmitsumorisaki5.value !== \"\" ||\n      setsubishikinkingaku5.value !== \"\" ||\n      setsubishikingaiyo6.value !== \"\" ||\n      setsubishikinmitsumorisaki6.value !== \"\" ||\n      setsubishikinkingaku6.value !== \"\" ||\n      setsubishikingaiyo7.value !== \"\" ||\n      setsubishikinmitsumorisaki7.value !== \"\" ||\n      setsubishikinkingaku7.value !== \"\" ||\n      setsubishikingaiyo8.value !== \"\" ||\n      setsubishikinmitsumorisaki8.value !== \"\" ||\n      setsubishikinkingaku8.value !== \"\" ||\n      setsubishikingaiyo9.value !== \"\" ||\n      setsubishikinmitsumorisaki9.value !== \"\" ||\n      setsubishikinkingaku9.value !== \"\" ||\n      setsubishikingaiyo10.value !== \"\" ||\n      setsubishikinmitsumorisaki10.value !== \"\" ||\n      setsubishikinkingaku10.value !== \"\" ||\n      untenshikingaiyo1.value !== \"\" ||\n      untenshikinkingaku1.value !== \"\" ||\n      untenshikingaiyo2.value !== \"\" ||\n      untenshikinkingaku2.value !== \"\" ||\n      untenshikingaiyo3.value !== \"\" ||\n      untenshikinkingaku3.value !== \"\" ||\n      untenshikingaiyo4.value !== \"\" ||\n      untenshikinkingaku4.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck15\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck15\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem7();\n  }\n\n  const jikoshikin = document.getElementById(\"text_jikoshikin\");\n  const shinzokuKariirekin = document.getElementById(\n    \"text_shinzoku_kariirekin\"\n  );\n  const shinzokuKariiremoto = document.getElementById(\n    \"jfc_template_shinzoku_kariiremoto\"\n  );\n  const shinzokuHensaihoho = document.getElementById(\n    \"jfc_template_shinzoku_hensaihoho\"\n  );\n  const kokoKariirekin = document.getElementById(\"text_koko_kariirekin\");\n  const kokoHensaihoho = document.getElementById(\n    \"jfc_template_koko_hensaihoho\"\n  );\n  const sonotaKariirekin = document.getElementById(\"text_sonota_kariirekin\");\n  const sonotaHensaihoho = document.getElementById(\n    \"jfc_template_sonota_hensaihoho\"\n  );\n  jikoshikin.addEventListener(\"input\", handleInputChangeChotatsu);\n  shinzokuKariirekin.addEventListener(\"input\", handleInputChangeChotatsu);\n  shinzokuKariiremoto.addEventListener(\"input\", handleInputChangeChotatsu);\n  shinzokuHensaihoho.addEventListener(\"input\", handleInputChangeChotatsu);\n  kokoKariirekin.addEventListener(\"input\", handleInputChangeChotatsu);\n  kokoHensaihoho.addEventListener(\"input\", handleInputChangeChotatsu);\n  sonotaKariirekin.addEventListener(\"input\", handleInputChangeChotatsu);\n  sonotaHensaihoho.addEventListener(\"input\", handleInputChangeChotatsu);\n  window.addEventListener(\"load\", handleInputChangeChotatsu);\n  function handleInputChangeChotatsu() {\n    if (\n      jikoshikin.value !== \"\" ||\n      shinzokuKariirekin.value !== \"\" ||\n      shinzokuKariiremoto.value !== \"\" ||\n      shinzokuHensaihoho.value !== \"\" ||\n      kokoKariirekin.value !== \"\" ||\n      kokoHensaihoho.value !== \"\" ||\n      sonotaKariirekin.value !== \"\" ||\n      sonotaHensaihoho.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck16\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck16\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem7();\n  }\n\n  function handleInputChangeItem7() {\n    if (\n      setsubishikingaiyo1.value !== \"\" ||\n      setsubishikinmitsumorisaki1.value !== \"\" ||\n      setsubishikinkingaku1.value !== \"\" ||\n      setsubishikingaiyo2.value !== \"\" ||\n      setsubishikinmitsumorisaki2.value !== \"\" ||\n      setsubishikinkingaku2.value !== \"\" ||\n      setsubishikingaiyo3.value !== \"\" ||\n      setsubishikinmitsumorisaki3.value !== \"\" ||\n      setsubishikinkingaku3.value !== \"\" ||\n      setsubishikingaiyo4.value !== \"\" ||\n      setsubishikinmitsumorisaki4.value !== \"\" ||\n      setsubishikinkingaku4.value !== \"\" ||\n      setsubishikingaiyo5.value !== \"\" ||\n      setsubishikinmitsumorisaki5.value !== \"\" ||\n      setsubishikinkingaku5.value !== \"\" ||\n      setsubishikingaiyo6.value !== \"\" ||\n      setsubishikinmitsumorisaki6.value !== \"\" ||\n      setsubishikinkingaku6.value !== \"\" ||\n      setsubishikingaiyo7.value !== \"\" ||\n      setsubishikinmitsumorisaki7.value !== \"\" ||\n      setsubishikinkingaku7.value !== \"\" ||\n      setsubishikingaiyo8.value !== \"\" ||\n      setsubishikinmitsumorisaki8.value !== \"\" ||\n      setsubishikinkingaku8.value !== \"\" ||\n      setsubishikingaiyo9.value !== \"\" ||\n      setsubishikinmitsumorisaki9.value !== \"\" ||\n      setsubishikinkingaku9.value !== \"\" ||\n      setsubishikingaiyo10.value !== \"\" ||\n      setsubishikinmitsumorisaki10.value !== \"\" ||\n      setsubishikinkingaku10.value !== \"\" ||\n      untenshikingaiyo1.value !== \"\" ||\n      untenshikinkingaku1.value !== \"\" ||\n      untenshikingaiyo2.value !== \"\" ||\n      untenshikinkingaku2.value !== \"\" ||\n      untenshikingaiyo3.value !== \"\" ||\n      untenshikinkingaku3.value !== \"\" ||\n      untenshikingaiyo4.value !== \"\" ||\n      untenshikinkingaku4.value !== \"\" ||\n      jikoshikin.value !== \"\" ||\n      shinzokuKariirekin.value !== \"\" ||\n      shinzokuKariiremoto.value !== \"\" ||\n      shinzokuHensaihoho.value !== \"\" ||\n      kokoKariirekin.value !== \"\" ||\n      kokoHensaihoho.value !== \"\" ||\n      sonotaKariirekin.value !== \"\" ||\n      sonotaHensaihoho.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus7\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus7\").classList.remove(\"inputted\");\n    }\n  }\n\n  //8\n  const kidoMedoNen = document.getElementById(\"jfc_template_kido_medo_nen\");\n  const kidoMedoGetsu = document.getElementById(\"jfc_template_kido_medo_getsu\");\n  kidoMedoNen.addEventListener(\"input\", handleInputChangeKido);\n  kidoMedoGetsu.addEventListener(\"input\", handleInputChangeKido);\n  window.addEventListener(\"load\", handleInputChangeKido);\n  function handleInputChangeKido() {\n    if (kidoMedoNen.value !== \"\" || kidoMedoGetsu.value !== \"\") {\n      document.getElementById(\"formAccordionCheck12\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck12\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem8();\n  }\n\n  const toshouriagedaka = document.getElementById(\"text_tosho_uriagedaka\");\n  const kidogouriagedaka = document.getElementById(\"text_kidogo_uriagedaka\");\n  const toshouriagegenka = document.getElementById(\"text_tosho_uriagegenka\");\n  const kidogouriagegenka = document.getElementById(\"text_kidogo_uriagegenka\");\n  const toshojinkenhi = document.getElementById(\"text_tosho_jinkenhi\");\n  const kidogojinkenhi = document.getElementById(\"text_kidogo_jinkenhi\");\n  const toshoyachin = document.getElementById(\"text_tosho_yachin\");\n  const kidogoyachin = document.getElementById(\"text_kidogo_yachin\");\n  const toshorisoku = document.getElementById(\"text_tosho_risoku\");\n  const kidogorisoku = document.getElementById(\"text_kidogo_risoku\");\n  const toshosonota = document.getElementById(\"text_tosho_sonota\");\n  const kidogosonota = document.getElementById(\"text_kidogo_sonota\");\n  toshouriagedaka.addEventListener(\"input\", handleInputChangeMitoshi);\n  kidogouriagedaka.addEventListener(\"input\", handleInputChangeMitoshi);\n  toshouriagegenka.addEventListener(\"input\", handleInputChangeMitoshi);\n  kidogouriagegenka.addEventListener(\"input\", handleInputChangeMitoshi);\n  toshojinkenhi.addEventListener(\"input\", handleInputChangeMitoshi);\n  kidogojinkenhi.addEventListener(\"input\", handleInputChangeMitoshi);\n  toshoyachin.addEventListener(\"input\", handleInputChangeMitoshi);\n  kidogoyachin.addEventListener(\"input\", handleInputChangeMitoshi);\n  toshorisoku.addEventListener(\"input\", handleInputChangeMitoshi);\n  kidogorisoku.addEventListener(\"input\", handleInputChangeMitoshi);\n  toshosonota.addEventListener(\"input\", handleInputChangeMitoshi);\n  kidogosonota.addEventListener(\"input\", handleInputChangeMitoshi);\n  window.addEventListener(\"load\", handleInputChangeMitoshi);\n  function handleInputChangeMitoshi() {\n    if (\n      toshouriagedaka.value !== \"\" ||\n      kidogouriagedaka.value !== \"\" ||\n      toshouriagegenka.value !== \"\" ||\n      kidogouriagegenka.value !== \"\" ||\n      toshojinkenhi.value !== \"\" ||\n      kidogojinkenhi.value !== \"\" ||\n      toshoyachin.value !== \"\" ||\n      kidogoyachin.value !== \"\" ||\n      toshorisoku.value !== \"\" ||\n      kidogorisoku.value !== \"\" ||\n      toshosonota.value !== \"\" ||\n      kidogosonota.value !== \"\"\n    ) {\n      document.getElementById(\"formAccordionCheck13\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck13\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem8();\n  }\n\n  const keisankonkyo = document.getElementById(\"jfc_template_keisankonkyo\");\n  keisankonkyo.addEventListener(\"input\", handleInputChangeKonkyo);\n  window.addEventListener(\"load\", handleInputChangeKonkyo);\n  function handleInputChangeKonkyo() {\n    if (keisankonkyo.value !== \"\") {\n      document.getElementById(\"formAccordionCheck14\").classList.add(\"inputted\");\n    } else {\n      document\n        .getElementById(\"formAccordionCheck14\")\n        .classList.remove(\"inputted\");\n    }\n    handleInputChangeItem8();\n  }\n\n  function handleInputChangeItem8() {\n    if (\n      kidoMedoNen.value !== \"\" ||\n      kidoMedoGetsu.value !== \"\" ||\n      toshouriagedaka.value !== \"\" ||\n      kidogouriagedaka.value !== \"\" ||\n      toshouriagegenka.value !== \"\" ||\n      kidogouriagegenka.value !== \"\" ||\n      toshojinkenhi.value !== \"\" ||\n      kidogojinkenhi.value !== \"\" ||\n      toshoyachin.value !== \"\" ||\n      kidogoyachin.value !== \"\" ||\n      toshorisoku.value !== \"\" ||\n      kidogorisoku.value !== \"\" ||\n      toshosonota.value !== \"\" ||\n      kidogosonota.value !== \"\" ||\n      keisankonkyo.value !== \"\"\n    ) {\n      document.getElementById(\"inputStatus8\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus8\").classList.remove(\"inputted\");\n    }\n  }\n\n  //9\n  const jiyukinyuran = document.getElementById(\"jfc_template_jiyukinyuran\");\n  jiyukinyuran.addEventListener(\"input\", handleInputChangeItem9);\n  window.addEventListener(\"load\", handleInputChangeItem9);\n  function handleInputChangeItem9() {\n    if (jiyukinyuran.value !== \"\") {\n      document.getElementById(\"inputStatus9\").classList.add(\"inputted\");\n    } else {\n      document.getElementById(\"inputStatus9\").classList.remove(\"inputted\");\n    }\n  }\n\n  //さらに表示\n  const moreButton1 = document.getElementById(\"additionalBtnCareer\");\n  const moreItemsClass1 = \"additionalCareer\";\n  const moreButton2 = document.getElementById(\"additionalBtnService\");\n  const moreItemsClass2 = \"additionalService\";\n  const moreButton3 = document.getElementById(\"additionalBtnSalesPoint\");\n  const moreItemsClass3 = \"additionalSalesPoint\";\n  const moreButton4 = document.getElementById(\"additionalBtnTarget\");\n  const moreItemsClass4 = \"additionalTarget\";\n  const moreButton5 = document.getElementById(\"additionalBtnKankyo\");\n  const moreItemsClass5 = \"additionalKankyo\";\n  const moreButton6 = document.getElementById(\"additionalBtnHambaisaki\");\n  const moreItemsClass6 = \"additionalHambaisaki\";\n  const moreButton7 = document.getElementById(\"additionalBtnShiiresaki\");\n  const moreItemsClass7 = \"additionalShiiresaki\";\n  const moreButton8 = document.getElementById(\"additionalBtnGaichusaki\");\n  const moreItemsClass8 = \"additionalGaichusaki\";\n  const moreButton9 = document.getElementById(\"additionalBtnKariiresaki\");\n  const moreItemsClass9 = \"additionalKariiresaki\";\n  const moreButton10 = document.getElementById(\"additionalBtnSetsubi\");\n  const moreItemsClass10 = \"additionalSetsubi\";\n  const moreButton11 = document.getElementById(\"additionalBtnUnten\");\n  const moreItemsClass11 = \"additionalUnten\";\n\n  function addMoreItem(addClass) {\n    const hiddenItems = document.querySelectorAll(`.${addClass}.hidden`);\n    if (hiddenItems[0]) {\n      hiddenItems[0].classList.remove(\"hidden\");\n    }\n  }\n\n  function hideMoreButton(moreButton, addClass) {\n    const hiddenItems = document.querySelectorAll(`.${addClass}.hidden`);\n    if (!hiddenItems[0]) {\n      moreButton.classList.add(\"d-none\");\n    }\n  }\n\n  moreButton1.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass1);\n    hideMoreButton(moreButton1, moreItemsClass1);\n  });\n  moreButton2.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass2);\n    hideMoreButton(moreButton2, moreItemsClass2);\n  });\n  moreButton3.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass3);\n    hideMoreButton(moreButton3, moreItemsClass3);\n  });\n  moreButton4.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass4);\n    hideMoreButton(moreButton4, moreItemsClass4);\n  });\n  moreButton5.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass5);\n    hideMoreButton(moreButton5, moreItemsClass5);\n  });\n  moreButton6.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass6);\n    hideMoreButton(moreButton6, moreItemsClass6);\n  });\n  moreButton7.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass7);\n    hideMoreButton(moreButton7, moreItemsClass7);\n  });\n  moreButton8.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass8);\n    hideMoreButton(moreButton8, moreItemsClass8);\n  });\n  moreButton9.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass9);\n    hideMoreButton(moreButton9, moreItemsClass9);\n  });\n  moreButton10.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass10);\n    hideMoreButton(moreButton10, moreItemsClass10);\n  });\n  moreButton11.addEventListener(\"click\", function () {\n    addMoreItem(moreItemsClass11);\n    hideMoreButton(moreButton11, moreItemsClass11);\n  });\n\n  window.addEventListener(\"load\", hideMoreButton(moreButton1, moreItemsClass1));\n  window.addEventListener(\"load\", hideMoreButton(moreButton2, moreItemsClass2));\n  window.addEventListener(\"load\", hideMoreButton(moreButton3, moreItemsClass3));\n  window.addEventListener(\"load\", hideMoreButton(moreButton4, moreItemsClass4));\n  window.addEventListener(\"load\", hideMoreButton(moreButton5, moreItemsClass5));\n  window.addEventListener(\"load\", hideMoreButton(moreButton6, moreItemsClass6));\n  window.addEventListener(\"load\", hideMoreButton(moreButton7, moreItemsClass7));\n  window.addEventListener(\"load\", hideMoreButton(moreButton8, moreItemsClass8));\n  window.addEventListener(\"load\", hideMoreButton(moreButton9, moreItemsClass9));\n  window.addEventListener(\"load\", hideMoreButton(moreButton10, moreItemsClass10));\n  window.addEventListener(\"load\", hideMoreButton(moreButton11, moreItemsClass11));\n\n  //入力文字数を表示\n  function writeInputLength(textarea, indicatorId) {\n    const inputValueLength = textarea.value.length;\n    const indicator = document.getElementById(indicatorId);\n    indicator.textContent = inputValueLength;\n  }\n\n  const countedTextarea1 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_1\"\n  );\n  const countedTextarea2 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_2\"\n  );\n  const countedTextarea3 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_3\"\n  );\n  const countedTextarea4 = document.getElementById(\n    \"jfc_template_shohingaiyo_1\"\n  );\n  const countedTextarea5 = document.getElementById(\n    \"jfc_template_shohingaiyo_2\"\n  );\n  const countedTextarea6 = document.getElementById(\n    \"jfc_template_shohingaiyo_3\"\n  );\n  const countedTextarea7 = document.getElementById(\n    \"jfc_template_sales_point_1\"\n  );\n  const countedTextarea8 = document.getElementById(\n    \"jfc_template_sales_point_2\"\n  );\n  const countedTextarea9 = document.getElementById(\n    \"jfc_template_sales_point_3\"\n  );\n  const countedTextarea10 = document.getElementById(\n    \"jfc_template_hambai_target_1\"\n  );\n  const countedTextarea11 = document.getElementById(\n    \"jfc_template_hambai_target_2\"\n  );\n  const countedTextarea12 = document.getElementById(\n    \"jfc_template_hambai_target_3\"\n  );\n  const countedTextarea13 = document.getElementById(\n    \"jfc_template_shijokankyo_1\"\n  );\n  const countedTextarea14 = document.getElementById(\n    \"jfc_template_shijokankyo_2\"\n  );\n  const countedTextarea15 = document.getElementById(\n    \"jfc_template_shijokankyo_3\"\n  );\n  const countedTextarea16 = document.getElementById(\n    \"jfc_template_kariiresaki_1\"\n  );\n  const countedTextarea17 = document.getElementById(\n    \"jfc_template_kariiresaki_2\"\n  );\n  const countedTextarea18 = document.getElementById(\n    \"jfc_template_kariiresaki_3\"\n  );\n  const countedTextarea19 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_1\"\n  );\n  const countedTextarea20 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_2\"\n  );\n  const countedTextarea21 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_3\"\n  );\n  const countedTextarea22 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_1\"\n  );\n  const countedTextarea23 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_2\"\n  );\n  const countedTextarea24 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_3\"\n  );\n  const countedTextarea25 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_1\"\n  );\n  const countedTextarea26 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_2\"\n  );\n  const countedTextarea27 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_3\"\n  );\n  const countedTextarea28 = document.getElementById(\n    \"jfc_template_shinzoku_kariiremoto\"\n  );\n  const countedTextarea29 = document.getElementById(\n    \"jfc_template_shinzoku_hensaihoho\"\n  );\n  const countedTextarea30 = document.getElementById(\n    \"jfc_template_koko_hensaihoho\"\n  );\n  const countedTextarea31 = document.getElementById(\n    \"jfc_template_sonota_hensaihoho\"\n  );\n  const countedTextarea32 = document.getElementById(\n    \"jfc_template_keisankonkyo\"\n  );\n  const countedTextarea33 = document.getElementById(\n    \"jfc_template_jiyukinyuran\"\n  );\n  const countedTextarea34 = document.getElementById(\n    \"jfc_template_keizokujigyonaiyo\"\n  );\n  const countedTextarea35 = document.getElementById(\n    \"jfc_template_shikakumei\"\n  );\n  const countedTextarea36 = document.getElementById(\n    \"jfc_template_chizai_naiyo\"\n  );\n  const countedTextarea37 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_4\"\n  );\n  const countedTextarea38 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_5\"\n  );\n  const countedTextarea39 = document.getElementById(\n    \"jfc_template_keieisyakeireki_naiyo_6\"\n  );\n  const countedTextarea40 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_4\"\n  );\n  const countedTextarea41 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_5\"\n  );\n  const countedTextarea42 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_6\"\n  );\n  const countedTextarea43 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_7\"\n  );\n  const countedTextarea44 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_8\"\n  );\n  const countedTextarea45 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_9\"\n  );\n  const countedTextarea46 = document.getElementById(\n    \"jfc_template_setsubishikin_gaiyo_10\"\n  );\n  const countedTextarea47 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_4\"\n  );\n  const countedTextarea48 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_5\"\n  );\n  const countedTextarea49 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_6\"\n  );\n  const countedTextarea50 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_7\"\n  );\n  const countedTextarea51 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_8\"\n  );\n  const countedTextarea52 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_9\"\n  );\n  const countedTextarea53 = document.getElementById(\n    \"jfc_template_setsubishikin_mitsumorisaki_10\"\n  );\n  const countedTextarea54 = document.getElementById(\n    \"jfc_template_untenshikin_gaiyo_4\"\n  );\n\n  countedTextarea1.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea1, \"span_keieisyakeireki_naiyo_1\");\n  });\n  countedTextarea2.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea2, \"span_keieisyakeireki_naiyo_2\");\n  });\n  countedTextarea3.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea3, \"span_keieisyakeireki_naiyo_3\");\n  });\n  countedTextarea4.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea4, \"span_shohingaiyo_1\");\n  });\n  countedTextarea5.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea5, \"span_shohingaiyo_2\");\n  });\n  countedTextarea6.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea6, \"span_shohingaiyo_3\");\n  });\n  countedTextarea7.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea7, \"span_sales_point_1\");\n  });\n  countedTextarea8.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea8, \"span_sales_point_2\");\n  });\n  countedTextarea9.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea9, \"span_sales_point_3\");\n  });\n  countedTextarea10.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea10, \"span_hambai_target_1\");\n  });\n  countedTextarea11.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea11, \"span_hambai_target_2\");\n  });\n  countedTextarea12.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea12, \"span_hambai_target_3\");\n  });\n  countedTextarea13.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea13, \"span_shijokankyo_1\");\n  });\n  countedTextarea14.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea14, \"span_shijokankyo_2\");\n  });\n  countedTextarea15.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea15, \"span_shijokankyo_3\");\n  });\n  countedTextarea16.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea16, \"span_kariiresaki_1\");\n  });\n  countedTextarea17.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea17, \"span_kariiresaki_2\");\n  });\n  countedTextarea18.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea18, \"span_kariiresaki_3\");\n  });\n  countedTextarea19.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea19, \"span_setsubishikin_gaiyo_1\");\n  });\n  countedTextarea20.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea20, \"span_setsubishikin_gaiyo_2\");\n  });\n  countedTextarea21.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea21, \"span_setsubishikin_gaiyo_3\");\n  });\n  countedTextarea22.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea22, \"span_setsubishikin_mitsumorisaki_1\");\n  });\n  countedTextarea23.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea23, \"span_setsubishikin_mitsumorisaki_2\");\n  });\n  countedTextarea24.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea24, \"span_setsubishikin_mitsumorisaki_3\");\n  });\n  countedTextarea25.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea25, \"span_untenshikin_gaiyo_1\");\n  });\n  countedTextarea26.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea26, \"span_untenshikin_gaiyo_2\");\n  });\n  countedTextarea27.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea27, \"span_untenshikin_gaiyo_3\");\n  });\n  countedTextarea28.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea28, \"span_shinzoku_kariiremoto\");\n  });\n  countedTextarea29.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea29, \"span_shinzoku_hensaihoho\");\n  });\n  countedTextarea30.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea30, \"span_koko_hensaihoho\");\n  });\n  countedTextarea31.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea31, \"span_sonota_hensaihoho\");\n  });\n  countedTextarea32.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea32, \"span_keisankonkyo\");\n  });\n  countedTextarea33.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea33, \"span_jiyukinyuran\");\n  });\n  countedTextarea34.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea34, \"span_keizokujigyonaiyo\");\n  });\n  countedTextarea35.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea35, \"span_shikakumei\");\n  });\n  countedTextarea36.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea36, \"span_chizai_naiyo\");\n  });\n  countedTextarea37.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea37, \"span_keieisyakeireki_naiyo_4\");\n  });\n  countedTextarea38.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea38, \"span_keieisyakeireki_naiyo_5\");\n  });\n  countedTextarea39.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea39, \"span_keieisyakeireki_naiyo_6\");\n  });\n  countedTextarea40.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea40, \"span_setsubishikin_gaiyo_4\");\n  });\n  countedTextarea41.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea41, \"span_setsubishikin_gaiyo_5\");\n  });\n  countedTextarea42.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea42, \"span_setsubishikin_gaiyo_6\");\n  });\n  countedTextarea43.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea43, \"span_setsubishikin_gaiyo_7\");\n  });\n  countedTextarea44.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea44, \"span_setsubishikin_gaiyo_8\");\n  });\n  countedTextarea45.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea45, \"span_setsubishikin_gaiyo_9\");\n  });\n  countedTextarea46.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea46, \"span_setsubishikin_gaiyo_10\");\n  });\n  countedTextarea47.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea47, \"span_setsubishikin_mitsumorisaki_4\");\n  });\n  countedTextarea48.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea48, \"span_setsubishikin_mitsumorisaki_5\");\n  });\n  countedTextarea49.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea49, \"span_setsubishikin_mitsumorisaki_6\");\n  });\n  countedTextarea50.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea50, \"span_setsubishikin_mitsumorisaki_7\");\n  });\n  countedTextarea51.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea51, \"span_setsubishikin_mitsumorisaki_8\");\n  });\n  countedTextarea52.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea52, \"span_setsubishikin_mitsumorisaki_9\");\n  });\n  countedTextarea53.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea53, \"span_setsubishikin_mitsumorisaki_10\");\n  });\n  countedTextarea54.addEventListener(\"input\", function () {\n    writeInputLength(countedTextarea54, \"span_untenshikin_gaiyo_4\");\n  });\n\n  const inputEvent = new Event(\"input\");\n  countedTextarea1.dispatchEvent(inputEvent);\n  countedTextarea2.dispatchEvent(inputEvent);\n  countedTextarea3.dispatchEvent(inputEvent);\n  countedTextarea4.dispatchEvent(inputEvent);\n  countedTextarea5.dispatchEvent(inputEvent);\n  countedTextarea6.dispatchEvent(inputEvent);\n  countedTextarea7.dispatchEvent(inputEvent);\n  countedTextarea8.dispatchEvent(inputEvent);\n  countedTextarea9.dispatchEvent(inputEvent);\n  countedTextarea10.dispatchEvent(inputEvent);\n  countedTextarea11.dispatchEvent(inputEvent);\n  countedTextarea12.dispatchEvent(inputEvent);\n  countedTextarea13.dispatchEvent(inputEvent);\n  countedTextarea14.dispatchEvent(inputEvent);\n  countedTextarea15.dispatchEvent(inputEvent);\n  countedTextarea16.dispatchEvent(inputEvent);\n  countedTextarea17.dispatchEvent(inputEvent);\n  countedTextarea18.dispatchEvent(inputEvent);\n  countedTextarea19.dispatchEvent(inputEvent);\n  countedTextarea20.dispatchEvent(inputEvent);\n  countedTextarea21.dispatchEvent(inputEvent);\n  countedTextarea22.dispatchEvent(inputEvent);\n  countedTextarea23.dispatchEvent(inputEvent);\n  countedTextarea24.dispatchEvent(inputEvent);\n  countedTextarea25.dispatchEvent(inputEvent);\n  countedTextarea26.dispatchEvent(inputEvent);\n  countedTextarea27.dispatchEvent(inputEvent);\n  countedTextarea28.dispatchEvent(inputEvent);\n  countedTextarea29.dispatchEvent(inputEvent);\n  countedTextarea30.dispatchEvent(inputEvent);\n  countedTextarea31.dispatchEvent(inputEvent);\n  countedTextarea32.dispatchEvent(inputEvent);\n  countedTextarea33.dispatchEvent(inputEvent);\n  countedTextarea34.dispatchEvent(inputEvent);\n  countedTextarea35.dispatchEvent(inputEvent);\n  countedTextarea36.dispatchEvent(inputEvent);\n  countedTextarea37.dispatchEvent(inputEvent);\n  countedTextarea38.dispatchEvent(inputEvent);\n  countedTextarea39.dispatchEvent(inputEvent);\n  countedTextarea40.dispatchEvent(inputEvent);\n  countedTextarea41.dispatchEvent(inputEvent);\n  countedTextarea42.dispatchEvent(inputEvent);\n  countedTextarea43.dispatchEvent(inputEvent);\n  countedTextarea44.dispatchEvent(inputEvent);\n  countedTextarea45.dispatchEvent(inputEvent);\n  countedTextarea46.dispatchEvent(inputEvent);\n  countedTextarea47.dispatchEvent(inputEvent);\n  countedTextarea48.dispatchEvent(inputEvent);\n  countedTextarea49.dispatchEvent(inputEvent);\n  countedTextarea50.dispatchEvent(inputEvent);\n  countedTextarea51.dispatchEvent(inputEvent);\n  countedTextarea52.dispatchEvent(inputEvent);\n  countedTextarea53.dispatchEvent(inputEvent);\n  countedTextarea54.dispatchEvent(inputEvent);\n\n  $(\"#founding_template_reflected\").on(\"click\", function() {\n    //7\n    handleInputChangeShikin();\n    handleInputChangeChotatsu();\n    //8\n    handleInputChangeKido();\n    handleInputChangeMitoshi();\n    handleInputChangeKonkyo();\n  });\n\n  function toggleSogyoBtnReverseFirstSogyoBtnReverseFinal() {\n    if ($(\"#sogyoFormContents\").hasClass(\"display\")) {\n      $(\"#sogyoBtnReverseFirst\").removeClass(\"d-none\");\n      $(\"#sogyoBtnReverseFinal\").addClass(\"d-none\");\n    } else if ($(\"#sogyoForm9\").hasClass(\"display\")) {\n      $(\"#sogyoBtnReverseFinal\").removeClass(\"d-none\");\n      $(\"#sogyoBtnReverseFirst\").addClass(\"d-none\");\n    } else {\n      $(\"#sogyoBtnReverseFirst\").addClass(\"d-none\");\n      $(\"#sogyoBtnReverseFinal\").addClass(\"d-none\");\n    }\n  }\n  toggleSogyoBtnReverseFirstSogyoBtnReverseFinal();\n} catch (error) {\n  console.warn(\"このページには創業計画に関する項目はありません\");\n}\n","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport Rails from \"@rails/ujs\"\n//import Turbolinks from \"turbolinks\"\nimport * as ActiveStorage from \"@rails/activestorage\"\nimport \"channels\"\n\nRails.start()\n//Turbolinks.start()\nActiveStorage.start()\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\n\nimport \"bootstrap\"\nimport \"stylesheets/style\"\n\nrequire(\"src/muitiple-selective-checkbox\")\nrequire(\"src/modal-fetch\")\nrequire(\"src/customs\")\nrequire(\"src/createSwiper\")\nrequire(\"src/kaigyoShikinSlider\")\nrequire(\"src/untenShikinSlider\")\nrequire(\"src/clipboardcopy\")\nrequire(\"src/inputNumber\")\nrequire(\"src/sogyo-keikaku\")\n\nrequire(\"src/user\")\nrequire(\"src/search\")\nrequire(\"src/plan\")\nrequire(\"src/founding-template\")\nrequire(\"src/jfc-template\")\n\nrequire(\"src/easy-diagnosis\")\nrequire(\"src/shindan-form\")\n\nrequire(\"src/numBtn\")\nrequire(\"src/suuchi-keikaku\")\n\nrequire(\"src/copy-sp-modal\")\n\nrequire(\"src/learn-search/suggest\")\nrequire(\"src/learn-search/searchTag\")\nrequire(\"src/learn-search/category\")\nrequire(\"src/learn-search/favorite\")\nrequire(\"src/learn-search/scroll\")\nrequire(\"src/learn-search/result\")\n\nrequire(\"src/learn-search/study\")\n\nrequire(\"src/search-re25\");\nrequire('src/collapsible-section');\nrequire('src/site-header');\nrequire('src/site-footer');\n\n// .js.erbファイルでjQueryを使用するための記述\nwindow.$ = jQuery;\n\nconst images = require.context(\"../../images\", true)\nconst imagePath = name => images(name, true)\n\n// tooltip 初期化\nimport { Tooltip } from \"bootstrap\";\nconst tooltipTriggerList = [].slice.call(\n  document.querySelectorAll('[data-bs-toggle=\"tooltip\"]')\n);\nconst tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {\n  return new Tooltip(tooltipTriggerEl);\n});\n","// チェックボックスとセレクトボックスの複合。'jquery-3.4.1.min.js'が必要。\nimport { Modal } from 'bootstrap'\n$(function() {\n  const modalId = \"#modal-target\";\n  const modalContentTargetId = \"#modal-content-target\";\n  const apiUrl = \"/api/v1/ankens/\";\n  var myModal;\n\n  if ($(modalId).length) {\n    myModal = new Modal($(modalId), {});\n  }\n  \n  $(\".js-open-anken-detail-modal\").on('click', function() {\n    var ankenId = $(this).data('id');\n    var qParams = $(this).data('q-params');\n\n    var url = apiUrl + ankenId;\n\n    if (typeof qParams !== 'undefined' && qParams.length) {\n      url = url + '?' + qParams;\n    }\n\n    $.get( url, function( data ) {\n      $(modalContentTargetId).html(data);\n      myModal.toggle();\n    });\n  });\n});","import Swiper from \"swiper/swiper-bundle\";\n\nconst option__original = {\n  loop: false,\n  autoplay: false,\n  spaceBetween: 24,\n  slidesPerView: 3,\n  slidesPerGroup: 1,\n  breakpoints: {\n    320: {\n      slidesPerView: 1.1,\n      spaceBetween: 10,\n      slidesOffsetBefore: 10,\n    },\n    768: {\n      slidesPerView: 2.1,\n      slidesOffsetBefore: 10,\n      slidesPerGroup: 2,\n    },\n    1025: {\n      slidesPerView: 2.5,\n      slidesPerGroup: 2,\n    },\n  },\n};\n\nconst option__means = Object.assign({}, option__original, {\n  navigation: {\n    nextEl: \"#main-carousel__arrows-next__means\",\n    prevEl: \"#main-carousel__arrows-prev__means\",\n  },\n});\n\nconst option__subsidy = Object.assign({}, option__original, {\n  navigation: {\n    nextEl: \"#main-carousel__arrows-next__subsidy\",\n    prevEl: \"#main-carousel__arrows-prev__subsidy\",\n  },\n});\n\nconst option__loan = Object.assign({}, option__original, {\n  navigation: {\n    nextEl: \"#main-carousel__arrows-next__loan\",\n    prevEl: \"#main-carousel__arrows-prev__loan\",\n  },\n});\n\nconst option__shindan = Object.assign({}, option__original, {\n  navigation: {\n    nextEl: \"#main-carousel__arrows-next__shindan\",\n    prevEl: \"#main-carousel__arrows-prev__shindan\",\n  },\n});\n\nconst option__history = Object.assign({}, option__original, {\n  navigation: {\n    nextEl: \"#main-carousel__arrows-next__history\",\n    prevEl: \"#main-carousel__arrows-prev__history\",\n  },\n  breakpoints: {\n    320: {\n      slidesPerView: 1.7,\n      spaceBetween: 10,\n      slidesOffsetBefore: 10,\n    },\n    768: {\n      slidesPerView: 3,\n      slidesOffsetBefore: 10,\n    },\n    1025: {\n      slidesPerView: 4,\n      slidesOffsetBefore: 0,\n    },\n  },\n});\n\nconst option__history__only = Object.assign({}, option__original, {\n  navigation: {\n    nextEl: \"#main-carousel__arrows-next__history\",\n    prevEl: \"#main-carousel__arrows-prev__history\",\n  },\n  breakpoints: {\n    320: {\n      slidesPerView: 1.7,\n      spaceBetween: 10,\n      slidesOffsetBefore: 10,\n    },\n    768: {\n      slidesPerView: 3,\n      slidesOffsetBefore: 10,\n    },\n    1025: {\n      slidesPerView: 4.2,\n      spaceBetween: 16,\n      slidesOffsetBefore: 0,\n    },\n  },\n});\n\nconst option__mainDetailRelation = Object.assign({}, option__original, {\n  navigation: {\n    nextEl: \"#main-carousel__arrows-next__relation\",\n    prevEl: \"#main-carousel__arrows-prev__relation\",\n    disabledClass: \"inactive\",\n  },\n  breakpoints: {\n    320: {\n      slidesPerView: 1.1,\n      spaceBetween: 10,\n      slidesOffsetBefore: 0,\n    },\n    768: {\n      slidesPerView: 2.1,\n      spaceBetween: 10,\n      slidesOffsetBefore: 0,\n    },\n    1025: {\n      slidesPerView: 3.1,\n      spaceBetween: 10,\n      slidesOffsetBefore: 0,\n    },\n  },\n});\n\nconst swiper__means = new Swiper(\"#swiper-container__means\", option__means);\nconst swiper__subsidy = new Swiper(\n  \"#swiper-container__subsidy\",\n  option__subsidy\n);\nconst swiper__loan = new Swiper(\"#swiper-container__loan\", option__loan);\n\nconst swiper__history = new Swiper(\n  \"#swiper-container__history\",\n  option__history\n);\n\nconst swiper__history__only = new Swiper(\n  \"#swiper-container__history--onlycarousel\",\n  option__history__only\n);\n\nconst swiper__shidan = new Swiper(\n  \"#swiper-container__shindan\",\n  option__shindan\n);\n\nconst swiper__mainDetailRelation = new Swiper(\n  \"#swiper-container__main-detail-relation\",\n  option__mainDetailRelation\n);\n","import { Tooltip } from \"bootstrap\";\n\n$(function () {\n  for (let i = 1; i < 3; i++) {\n    $(\"#copyButton\" + i).on(\"click\", function () {\n      let copyTarget = $.trim($(\"#copyTarget\" + i).html()).replace(\n        /<br>/g,\n        \"\\n\"\n      );\n      navigator.clipboard.writeText(copyTarget);\n\n      // ツールチップで完了通知\n      var tooltipEl = document.getElementById(\"copyButton\" + i);\n      var tooltip = new Tooltip(tooltipEl);\n      tooltip.show();\n      setTimeout(function () {\n        tooltip.hide();\n      }, 1600);\n    });\n  }\n});\n","import { sanitizeMoney, updateDelimitedMoney } from \"./suchiUtil\";\nimport { automaticCalculationValidate } from \"./founding-template\";\n// 入力フォームの中身のチェック&変更\n$(function() {\n  $(\".inputMoneyFillByZero\").on(\"change\", function (e) {\n    let result = $(this).val();\n    $(this).val(sanitizeMoney(result));\n  });\n});\n\n// プラス/マイナスボタンで値を10ずつ変化\nconst inputEvent = new Event(\"input\");\nconst changeEvent = new Event(\"change\");\nconst suuchiNumBtnSets = document.querySelectorAll(\".suuchi-numBtn\");\nfunction incrementValue(input) {\n  var inputValue = sanitizeMoney(input.value);\n  if (input.value === \"\") {\n    input.value = 100;\n  } else {\n    inputValue += 10;\n    input.value = inputValue;\n  }\n  input.dispatchEvent(inputEvent);\n  input.dispatchEvent(changeEvent);\n}\nfunction decrementValue(input) {\n  var inputValue = sanitizeMoney(input.value);\n  if (input.value === \"\") {\n    input.value = 100;\n  } else if (inputValue >= 10) {\n    inputValue -= 10;\n    input.value = inputValue;\n  } else {\n    input.value = 0;\n  }\n  input.dispatchEvent(inputEvent);\n  input.dispatchEvent(changeEvent);\n}\nsuuchiNumBtnSets.forEach((numBtnSet) => {\n  var suuchiInput = numBtnSet.querySelector(\".suuchiInput\");\n  var suuchiPlus = numBtnSet.querySelector(\".suuchiPlus\");\n  var suuchiMinus = numBtnSet.querySelector(\".suuchiMinus\");\n  suuchiPlus.addEventListener(\"click\", function () {\n    incrementValue(suuchiInput);\n  });\n  suuchiMinus.addEventListener(\"click\", function () {\n    decrementValue(suuchiInput);\n  });\n});\n\nconst step1SuuchiInputs = document.querySelectorAll(\"#form_suuchi_step1_sp .suuchiInput\");\nstep1SuuchiInputs.forEach((suuchiInput) => {\n  suuchiInput.addEventListener(\"change\", function () {\n    // カンマ区切り処理\n    updateDelimitedMoney(suuchiInput, false);\n  });\n});\n\nconst step2SuuchiInputs = document.querySelectorAll(\"#form_suuchi_step2_sp .suuchiInput\");\nstep2SuuchiInputs.forEach((suuchiInput) => {\n  suuchiInput.addEventListener(\"change\", function () {\n    // カンマ区切り処理\n    updateDelimitedMoney(suuchiInput, true);\n  });\n});\n","// 新規会員登録画面で事業形態が選択されていなければ、同意チェックボックスを非活性にする\n$(function() {\n  if ($('#register_agree_check_box').length) {\n    var businessTypeRadioButtonSelector = '#user_registration_business_type input[name=\"user[business_type_cd]\"]';\n    var registerAgreeCheckBoxSelector = '#register_agree_check_box';\n\n    toggleRegisterAgreeCheckBox();\n\n    $(businessTypeRadioButtonSelector).on('change', function() {\n      toggleRegisterAgreeCheckBox();\n    });\n\n    function toggleRegisterAgreeCheckBox() {\n      var errorStatus = checkMandatoryFields();\n      if (errorStatus === true) {\n        $(registerAgreeCheckBoxSelector).prop('disabled', true);\n        $(registerAgreeCheckBoxSelector).prop('checked', false);\n        $(registerAgreeCheckBoxSelector).trigger('change');\n      } else {\n        $(registerAgreeCheckBoxSelector).prop('disabled', false);\n      }\n    }\n\n    function checkMandatoryFields() {\n      var errorStatus = false;\n      // 事業形態のnullチェック\n      if($(businessTypeRadioButtonSelector+':checked').val() === undefined) {\n        errorStatus = true;\n      }\n      return errorStatus\n    }\n  }\n});\n\n// 利用規約同意と退会の確認チェックボックスとsubmitボタン\n$(function() {\n  const registerCheckBoxId = '#register_agree_check_box';\n  const registerSubmitButtonId = '#register_submit_button';\n  toggleSubmitButtonDisabled(registerCheckBoxId, registerSubmitButtonId);\n\n  const withdrawalCheckBoxId = '#withdrawal_verified_check_box';\n  const withdrawalSubmitButtonId = '#withdrawal_submit_button';\n  toggleSubmitButtonDisabled(withdrawalCheckBoxId, withdrawalSubmitButtonId);\n\n  function toggleSubmitButtonDisabled(checkBoxId, submitButtonId) {\n    $(checkBoxId).on('change', function() {\n      if ($(this).prop('checked')) {\n        $(submitButtonId).prop('disabled', false);\n      } else {\n        $(submitButtonId).prop('disabled', true);\n      }\n    });\n  }\n});\n\n// 事業形態がon change時の挙動\n$('input[name=\"user[business_type_cd]\"]').on('change', function() {\n  userBusinessTypeValidation($(this));\n});\n// ロード時の事業形態の挙動\n$(function() {\n  var element = $('input[name=\"user[business_type_cd]\"]:checked')\n  if (element.length) {\n    userBusinessTypeValidation(element);\n  }\n});\n\n// 事業形態ラジオボタンのチェック状態の要素をクリックでチェックをはずす\n/*\n$(function() {\n  const inputs = $('input[name=\"user[business_type_cd]\"]');\n  let checked = inputs.filter(':checked').val();\n\n  inputs.on('click', function() {\n    if ($(this).val() === checked) {\n      $(this).prop('checked', false);\n      checked = '';\n    } else {\n      $(this).prop('checked', true);\n      checked = $(this).val();\n    }\n\n    userBusinessTypeValidation($(this));\n  });\n});\n*/\n\nfunction userBusinessTypeValidation (element) {\n  if (element.prop('checked')) {\n    // 事業形態が「創業前」の時、「従業員数」と「継続年数」を非活性状態とする\n    if (element.val() === \"創業前\") {\n      $('#user_employee_number').val(\"\").addClass(\"default\").prop('disabled', true);\n      $('#user_business_period_cd').val(\"\").addClass(\"default\").prop('disabled', true);\n    } else {\n      $('#user_employee_number').prop('disabled', false);\n      $('#user_business_period_cd').prop('disabled', false);\n    }\n    // 事業形態が「法人」または初期値以外の場合、「資本金額」を非活性状態とする\n    if (element.val() === \"法人\" || element.val() === \"\") {\n      $('#user_capital_amount').prop('disabled', false);\n    } else {\n      $('#user_capital_amount').val(\"\").addClass(\"default\").prop('disabled', true);\n    }\n  } else {\n    $('#user_employee_number').prop('disabled', false);\n    $('#user_business_period_cd').prop('disabled', false);\n    $('#user_capital_amount').prop('disabled', false);\n  }\n}\n\nimport {checkedCitiesOver, checkFreewordLengthOver} from './muitiple-selective-checkbox';\n$('.user-form-submit-button').on('click', (e) => {\n  // 市区町村が制限以上またはフリーワードの文字数が制限以上の場合submitしない\n  var hasError = checkedCitiesOver() || checkFreewordLengthOver();\n  if(hasError){\n    return false;\n  }\n});\n","// 「登録情報を反映」ボタンクリック時\n$('#reflect_user_data_to_search_condition_button').on('click', function() {\n  $('#reflect_user_data_to_search_condition_form_submit_button').trigger('click');\n});\n\n// 「条件クリア」ボタンクリック時\n$('#clear_search_condition').on('click', function() {\n  // 地域\n  if (typeof checkedPrefs !== 'undefined') {\n    checkedPrefs = [];\n  }\n  if (typeof checkedCities !== 'undefined') {\n    checkedCities = [];\n  }\n  \n  // 従業員数\n  $('#q_anken_employee_number').val('');\n  // 継続年数\n  $('#q_anken_business_period_cd').val('');\n  // 資本金額\n  $('#q_anken_capital_amount').val('');\n  // 上記の3つは事業形態の選択により非活性状態にする場合があるため、事業形態の処理より前に実行する\n  \n  // 事業形態\n  $('.business-type').val('')\n  $(\".business-type\").trigger('change');\n  \n  // 業種\n  $('.chex-ind').prop('checked', false);\n  \n  // 希望金額\n  $('#q_required_amount').val('')\n  \n  // 課題・資金使途\n  $('.chex-use').prop('checked', false);\n  \n  // 訪問不要\n  $('#q_anken_visit_required_unnecessary').prop('checked', false);\n  \n  // 担保提供可(融資のみ)\n  $('#q_tanpo_required_necessary_or_necessary_in_some_cases').prop('checked', false);\n  \n  // 弥生製品データ利用\n  $('#q_is_yayoi_service_usable_usable').prop('checked', false);\n  \n  // 募集終了も含む\n  $('#q_including_offering_expired').prop('checked', false);\n  \n  // フリーワード\n  $('#q_keyword').val('')\n  \n  $('.checkbox-ex--flat__select').trigger('change');\n  $('#after_reset_search_condition').trigger('click');\n});\n\n// 外部リンククリック時に実行\n$(document).on('click', '.gtm-external-link', function() {\n  const id = $(this).data('id');\n  if (typeof id !== 'undefined' && id !== '' && id !== null) {\n    $.ajax({\n      type: \"POST\",\n      url: \"/gtm_external_link\",\n      data: {id: id}\n    });\n  }\n});\n\n\nimport { Modal } from 'bootstrap'\n// 未ログイン時お気に入りアイコンクリック時モーダル表示\n$(document).on('click', '.js-open_favorite_signup_login_modal', function() {\n  const favoriteSignupLoginModal = new Modal(document.getElementById('favoriteSignupLoginModal'));\n  favoriteSignupLoginModal.show();\n});\n// セッション切れリロード後モーダル表示\n$(function() {\n  if ($('.js-open_session_timeout_modal').length) {\n    const sessionTimeoutModal = new Modal(document.getElementById('sessionTimeoutModal'));\n    sessionTimeoutModal.show();\n  }\n  if ($('.js-open_user_info_does_not_exist_modal').length) {\n    const userInfoDoesNotExistModal = new Modal(document.getElementById('userInfoDoesNotExistModal'));\n    userInfoDoesNotExistModal.show();\n  }\n});\n\n// 多重モーダル対応\n$(function() {\n  var myModals = document.querySelectorAll('.modal');\n\n  myModals.forEach(function(myModal) {\n    myModal.addEventListener('show.bs.modal', function (event) {\n      var zIndex = 1040 + (10 * $('.modal:visible').length);\n      $(event.target).css('z-index', zIndex);\n      setTimeout(function() {\n        $('.modal-backdrop')\n          .not('.modal-stack')\n          .css('z-index', zIndex - 1)\n          .addClass('modal-stack');\n      }, 0);\n    })\n  });\n\n  myModals.forEach(function(myModal) {\n    myModal.addEventListener('shown.bs.modal', function (event) {\n      event.target.focus();\n    })\n  });\n\n  myModals.forEach(function(myModal) {\n    myModal.addEventListener('hidden.bs.modal', function (event) {\n      if ($('.modal:visible').length > 0) {\n        var $visibleModalsSortByZIndex = $('.modal:visible').sort(function(a, b) {\n          return (parseInt($(a).css('z-index')) < parseInt($(b).css('z-index')) ? 1 : -1);\n        });\n        if ($visibleModalsSortByZIndex.length > 0) {\n          $visibleModalsSortByZIndex[0].focus();\n        }\n      }\n    });\n  });\n});\n","import { Modal } from 'bootstrap'\n// 一時保存ページロード後モーダル表示\n$(function() {\n  if ($('.js-open_plan_save_success_modal').length) {\n    const preserve = new Modal(document.getElementById('preserve'));\n    preserve.show();\n  }\n});\n// 削除確認モーダル表示\n$(function() {\n  const modalSelector = \"#copy\";\n  const changeTargetSelector = \"#copy #js-plan_delete_form\";\n  var myModal;\n\n  if ($(modalSelector).length) {\n    myModal = new Modal($(modalSelector), {});\n  }\n\n  $('.js-plan_delete_button').on('click', function() {\n    var href = $(this).data('link-href');\n    $(changeTargetSelector).attr('action', href);\n\n    myModal.show();\n  });\n});\n\n$(function() {\n  // メール送信ボタン活性状態切替\n  const emailAddressInputSelector = \".js-plan_download_modal_email_form_email_address\";\n  const submitButtonSelector = \".js-plan_download_modal_email_form_submit_button\";\n  // ロード時\n  if ($(submitButtonSelector).length) {\n    const sendButton = $(submitButtonSelector);\n    const emailAddressVal = sendButton.siblings(emailAddressInputSelector).val();\n    if (!emailAddressIsValid(emailAddressVal)) {\n      sendButton.prop(\"disabled\", true);\n    } else {\n      sendButton.prop(\"disabled\", false);\n    }\n  }\n  // メールアドレス変更時\n  $(emailAddressInputSelector).on(\"change\", function() {\n    const sendButton = $(this).siblings(submitButtonSelector);\n    if (!emailAddressIsValid($(this).val())) {\n      sendButton.prop(\"disabled\", true);\n    } else {\n      sendButton.prop(\"disabled\", false);\n    }\n  });\n  // メールアドレスバリデーション\n  function emailAddressIsValid(value) {\n    let result = true;\n    if (value == \"\") {\n      result = false;\n    } else if (!value.match(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/)) {\n      result = false;\n    }\n    return result;\n  }\n\n  // ダウンロードモーダル\n  const downloadModalSelector = \"#download-sp\";\n  var downloadModal;\n  if ($(downloadModalSelector).length) {\n    downloadModal = new Modal($(downloadModalSelector), {});\n  }\n  if ($('.js-open_plan_download_modal').length) {\n    downloadModal.show();\n  }\n\n  // メール送信完了モーダル\n  const emailSendCompletelyModalSelector = \"#send-sp\";\n  var emailSendCompletelyModal;\n  if ($(emailSendCompletelyModalSelector).length) {\n    emailSendCompletelyModal = new Modal($(emailSendCompletelyModalSelector), {});\n  }\n\n  // メール送信フォームsubmit時に、ダウンロードモーダルを閉じて、メール送信完了モーダルを開く\n  $(\".js-plan_download_modal_email_form\").on(\"submit\", function() {\n    downloadModal.hide();\n    emailSendCompletelyModal.show();\n  });\n\n  // ダウンロードボタンクリック時に、ダウンロードモーダルを閉じる\n  $(\".js-close_plan_download_modal\").on(\"click\", function() {\n    downloadModal.hide();\n  });\n});\n\n// ポイントモーダル\n$(function() {\n  const modalSelector = \"#point\";\n  var myModal;\n\n  if ($(modalSelector).length) {\n    myModal = new Modal($(modalSelector), {});\n  }\n\n  if ($('.js-open_plan_point_modal').length) {\n    myModal.show();\n  }\n});\n\n$(function() {\n  // 100文字以上入力されたらトリムする\n  $(\".js-trimOver100chars\").on('load input', function(e) {\n    trimOverNchars(100, e.target);\n  });\n  // 5000文字以上入力されたらトリムする\n  $(\".js-trimOver5000chars\").on('load input', function(e) {\n    trimOverNchars(5000, e.target);\n  });\n});\n\nfunction trimOverNchars(maxLength, element) {\n  if (element.value && element.value.length > maxLength) {\n    element.value = element.value.slice(0, maxLength)\n  }\n}\n\n$(function() {\n  if ($('.js-open_signup_only_modal').length) {\n    const noveltyRegisterModal = new Modal(document.getElementById('novelty-register-modal'));\n    noveltyRegisterModal.show();\n  }\n});\n","// モーダル。'jquery-3.4.1.min.js'が必要。\nimport { Modal } from \"bootstrap\";\nimport { calcSection7 } from \"./sogyo-keikaku\";\n\n// 創業数値計画選択一覧モーダル\n$(function () {\n  const modalSelector = \"#new\";\n  const modalContentTargetSelector = \"#new #modal-content-target\";\n  const url = \"/plan/founding_templates/select_list\";\n  var myModal;\n\n  if ($(modalSelector).length) {\n    myModal = new Modal($(modalSelector), {});\n  }\n\n  $(\".js-open_founding_template_select_list_modal\").on(\"click\", function () {\n    $.get(url, function (data) {\n      $(modalContentTargetSelector).html(data);\n      myModal.show();\n    });\n  });\n\n  $(\".js-open_founding_template_select_list_modal_sp\").on(\"click\", function () {\n    $.get(url, { sp: 'true' }, function (data) {\n      $(modalContentTargetSelector).html(data);\n      myModal.show();\n    });\n  });\n});\n// 創業数値計画反映確認モーダル\n$(function () {\n  const modalSelector = \"#reflect\";\n  const modalContentTargetSelector = \"#reflect #modal-content-target\";\n  var myModal;\n\n  if ($(modalSelector).length) {\n    myModal = new Modal($(modalSelector), {});\n  }\n\n  $(document).on(\n    \"click\",\n    \".js-open_founding_template_reflect_modal\",\n    function () {\n      var selectedFoundingTemplate = $(this).data(\"selected-founding-template\");\n\n      $(modalContentTargetSelector).data(\n        \"selected-founding-template\",\n        selectedFoundingTemplate\n      );\n\n      myModal.show();\n    }\n  );\n});\n\n// 創業数値計画反映\n$(function () {\n  $(\".js-founding_template_reflect\").on(\"click\", function () {\n    const selectedFoundingTemplate = $(this).data(\"selected-founding-template\");\n    const selectedFoundingTemplateJson = JSON.parse(\n      document.getElementById(selectedFoundingTemplate).text\n    );\n\n    $(\".js-founding_template_reflect_target_wrapper\")\n      .find(\"input, textarea\")\n      .val(\"\");\n\n    // 設備資金\n    const jfc_template_setsubishikin_gaiyo_1 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_gaiyo_1;\n    if (jfc_template_setsubishikin_gaiyo_1 != null) {\n      $(\"#jfc_template_setsubishikin_gaiyo_1\").val(\n        jfc_template_setsubishikin_gaiyo_1\n      );\n    }\n\n    const jfc_template_setsubishikin_kingaku_1 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_kingaku_1;\n    if (jfc_template_setsubishikin_kingaku_1 != null) {\n      $(\"#setsubishikin_kingaku_1\").val(jfc_template_setsubishikin_kingaku_1);\n      $(\"#text_setsubishikin_kingaku_1\").val(\n        jfc_template_setsubishikin_kingaku_1.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_setsubishikin_gaiyo_2 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_gaiyo_2;\n    if (jfc_template_setsubishikin_gaiyo_2 != null) {\n      $(\"#jfc_template_setsubishikin_gaiyo_2\").val(\n        jfc_template_setsubishikin_gaiyo_2\n      );\n    }\n\n    const jfc_template_setsubishikin_kingaku_2 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_kingaku_2;\n    if (jfc_template_setsubishikin_kingaku_2 != null) {\n      $(\"#setsubishikin_kingaku_2\").val(jfc_template_setsubishikin_kingaku_2);\n      $(\"#text_setsubishikin_kingaku_2\").val(\n        jfc_template_setsubishikin_kingaku_2.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_setsubishikin_gaiyo_3 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_gaiyo_3;\n    if (jfc_template_setsubishikin_gaiyo_3 != null) {\n      $(\"#jfc_template_setsubishikin_gaiyo_3\").val(\n        jfc_template_setsubishikin_gaiyo_3\n      );\n    }\n\n    const jfc_template_setsubishikin_kingaku_3 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_kingaku_3;\n    if (jfc_template_setsubishikin_kingaku_3 != null) {\n      $(\"#setsubishikin_kingaku_3\").val(jfc_template_setsubishikin_kingaku_3);\n      $(\"#text_setsubishikin_kingaku_3\").val(\n        jfc_template_setsubishikin_kingaku_3.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_setsubishikin_gaiyo_4 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_gaiyo_4;\n    if (jfc_template_setsubishikin_gaiyo_4 != null) {\n      $(\"#jfc_template_setsubishikin_gaiyo_4\").val(\n        jfc_template_setsubishikin_gaiyo_4\n      );\n    }\n\n    const jfc_template_setsubishikin_kingaku_4 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_kingaku_4;\n    if (jfc_template_setsubishikin_kingaku_4 != null) {\n      $(\"#setsubishikin_kingaku_4\").val(jfc_template_setsubishikin_kingaku_4);\n      $(\"#text_setsubishikin_kingaku_4\").val(\n        jfc_template_setsubishikin_kingaku_4.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_setsubishikin_gaiyo_5 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_gaiyo_5;\n    if (jfc_template_setsubishikin_gaiyo_5 != null) {\n      $(\"#jfc_template_setsubishikin_gaiyo_5\").val(\n        jfc_template_setsubishikin_gaiyo_5\n      );\n    }\n\n    const jfc_template_setsubishikin_kingaku_5 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_kingaku_5;\n    if (jfc_template_setsubishikin_kingaku_5 != null) {\n      $(\"#setsubishikin_kingaku_5\").val(jfc_template_setsubishikin_kingaku_5);\n      $(\"#text_setsubishikin_kingaku_5\").val(\n        jfc_template_setsubishikin_kingaku_5.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_setsubishikin_gaiyo_6 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_gaiyo_6;\n    if (jfc_template_setsubishikin_gaiyo_6 != null) {\n      $(\"#jfc_template_setsubishikin_gaiyo_6\").val(\n        jfc_template_setsubishikin_gaiyo_6\n      );\n    }\n\n    const jfc_template_setsubishikin_kingaku_6 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_kingaku_6;\n    if (jfc_template_setsubishikin_kingaku_6 != null) {\n      $(\"#setsubishikin_kingaku_6\").val(jfc_template_setsubishikin_kingaku_6);\n      $(\"#text_setsubishikin_kingaku_6\").val(\n        jfc_template_setsubishikin_kingaku_6.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_setsubishikin_gaiyo_7 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_gaiyo_7;\n    if (jfc_template_setsubishikin_gaiyo_7 != null) {\n      $(\"#jfc_template_setsubishikin_gaiyo_7\").val(\n        jfc_template_setsubishikin_gaiyo_7\n      );\n    }\n\n    const jfc_template_setsubishikin_kingaku_7 =\n      selectedFoundingTemplateJson.jfc_template_setsubishikin_kingaku_7;\n    if (jfc_template_setsubishikin_kingaku_7 != null) {\n      $(\"#setsubishikin_kingaku_7\").val(jfc_template_setsubishikin_kingaku_7);\n      $(\"#text_setsubishikin_kingaku_7\").val(\n        jfc_template_setsubishikin_kingaku_7.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 運転資金\n    const jfc_template_untenshikin_gaiyo_1 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_gaiyo_1;\n    if (jfc_template_untenshikin_gaiyo_1 != null) {\n      $(\"#jfc_template_untenshikin_gaiyo_1\").val(\n        jfc_template_untenshikin_gaiyo_1\n      );\n    }\n\n    const jfc_template_untenshikin_kingaku_1 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_kingaku_1;\n    if (jfc_template_untenshikin_kingaku_1 != null) {\n      $(\"#untenshikin_kingaku_1\").val(jfc_template_untenshikin_kingaku_1);\n      $(\"#text_untenshikin_kingaku_1\").val(\n        jfc_template_untenshikin_kingaku_1.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_untenshikin_gaiyo_2 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_gaiyo_2;\n    if (jfc_template_untenshikin_gaiyo_2 != null) {\n      $(\"#jfc_template_untenshikin_gaiyo_2\").val(\n        jfc_template_untenshikin_gaiyo_2\n      );\n    }\n\n    const jfc_template_untenshikin_kingaku_2 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_kingaku_2;\n    if (jfc_template_untenshikin_kingaku_2 != null) {\n      $(\"#untenshikin_kingaku_2\").val(jfc_template_untenshikin_kingaku_2);\n      $(\"#text_untenshikin_kingaku_2\").val(\n        jfc_template_untenshikin_kingaku_2.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_untenshikin_gaiyo_3 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_gaiyo_3;\n    if (jfc_template_untenshikin_gaiyo_3 != null) {\n      $(\"#jfc_template_untenshikin_gaiyo_3\").val(\n        jfc_template_untenshikin_gaiyo_3\n      );\n    }\n\n    const jfc_template_untenshikin_kingaku_3 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_kingaku_3;\n    if (jfc_template_untenshikin_kingaku_3 != null) {\n      $(\"#untenshikin_kingaku_3\").val(jfc_template_untenshikin_kingaku_3);\n      $(\"#text_untenshikin_kingaku_3\").val(\n        jfc_template_untenshikin_kingaku_3.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    const jfc_template_untenshikin_gaiyo_4 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_gaiyo_4;\n    if (jfc_template_untenshikin_gaiyo_4 != null) {\n      $(\"#jfc_template_untenshikin_gaiyo_4\").val(\n        jfc_template_untenshikin_gaiyo_4\n      );\n    }\n\n    const jfc_template_untenshikin_kingaku_4 =\n      selectedFoundingTemplateJson.jfc_template_untenshikin_kingaku_4;\n    if (jfc_template_untenshikin_kingaku_4 != null) {\n      $(\"#untenshikin_kingaku_4\").val(jfc_template_untenshikin_kingaku_4);\n      $(\"#text_untenshikin_kingaku_4\").val(\n        jfc_template_untenshikin_kingaku_4.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 自己資金\n    const jfc_template_jikoshikin =\n      selectedFoundingTemplateJson.jfc_template_jikoshikin;\n    if (jfc_template_jikoshikin != null) {\n      $(\"#jikoshikin\").val(jfc_template_jikoshikin);\n      $(\"#text_jikoshikin\").val(\n        jfc_template_jikoshikin.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 親、兄弟、知人、友人等からの借入 金額\n    const jfc_template_shinzoku_kariirekin =\n      selectedFoundingTemplateJson.jfc_template_shinzoku_kariirekin;\n    if (jfc_template_shinzoku_kariirekin != null) {\n      $(\"#shinzoku_kariirekin\").val(jfc_template_shinzoku_kariirekin);\n      $(\"#text_shinzoku_kariirekin\").val(\n        jfc_template_shinzoku_kariirekin.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 日本政策金融公庫 国民生活事業からの借入 金額\n    const jfc_template_koko_kariirekin =\n      selectedFoundingTemplateJson.jfc_template_koko_kariirekin;\n    if (jfc_template_koko_kariirekin != null) {\n      $(\"#koko_kariirekin\").val(jfc_template_koko_kariirekin);\n      $(\"#text_koko_kariirekin\").val(\n        jfc_template_koko_kariirekin.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 売上高 創業当初\n    const jfc_template_tosho_uriagedaka =\n      selectedFoundingTemplateJson.jfc_template_tosho_uriagedaka;\n    if (jfc_template_tosho_uriagedaka != null) {\n      $(\"#tosho_uriagedaka\").val(jfc_template_tosho_uriagedaka);\n      $(\"#text_tosho_uriagedaka\").val(\n        jfc_template_tosho_uriagedaka.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 売上高 軌道に乗った後\n    const jfc_template_kidogo_uriagedaka =\n      selectedFoundingTemplateJson.jfc_template_kidogo_uriagedaka;\n    if (jfc_template_kidogo_uriagedaka != null) {\n      $(\"#kidogo_uriagedaka\").val(jfc_template_kidogo_uriagedaka);\n      $(\"#text_kidogo_uriagedaka\").val(\n        jfc_template_kidogo_uriagedaka.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 売上原価(仕入高) 創業当初\n    const jfc_template_tosho_uriagegenka =\n      selectedFoundingTemplateJson.jfc_template_tosho_uriagegenka;\n    if (jfc_template_tosho_uriagegenka != null) {\n      $(\"#tosho_uriagegenka\").val(jfc_template_tosho_uriagegenka);\n      $(\"#text_tosho_uriagegenka\").val(\n        jfc_template_tosho_uriagegenka.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 売上原価(仕入高) 軌道に乗った後\n    const jfc_template_kidogo_uriagegenka =\n      selectedFoundingTemplateJson.jfc_template_kidogo_uriagegenka;\n    if (jfc_template_kidogo_uriagegenka != null) {\n      $(\"#kidogo_uriagegenka\").val(jfc_template_kidogo_uriagegenka);\n      $(\"#text_kidogo_uriagegenka\").val(\n        jfc_template_kidogo_uriagegenka.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 人件費 創業当初\n    const jfc_template_tosho_jinkenhi =\n      selectedFoundingTemplateJson.jfc_template_tosho_jinkenhi;\n    if (jfc_template_tosho_jinkenhi != null) {\n      $(\"#tosho_jinkenhi\").val(jfc_template_tosho_jinkenhi);\n      $(\"#text_tosho_jinkenhi\").val(\n        jfc_template_tosho_jinkenhi.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 人件費 軌道に乗った後\n    const jfc_template_kidogo_jinkenhi =\n      selectedFoundingTemplateJson.jfc_template_kidogo_jinkenhi;\n    if (jfc_template_kidogo_jinkenhi != null) {\n      $(\"#kidogo_jinkenhi\").val(jfc_template_kidogo_jinkenhi);\n      $(\"#text_kidogo_jinkenhi\").val(\n        jfc_template_kidogo_jinkenhi.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 家賃 創業当初\n    const jfc_template_tosho_yachin =\n      selectedFoundingTemplateJson.jfc_template_tosho_yachin;\n    if (jfc_template_tosho_yachin != null) {\n      $(\"#tosho_yachin\").val(jfc_template_tosho_yachin);\n      $(\"#text_tosho_yachin\").val(\n        jfc_template_tosho_yachin.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 家賃 軌道に乗った後\n    const jfc_template_kidogo_yachin =\n      selectedFoundingTemplateJson.jfc_template_kidogo_yachin;\n    if (jfc_template_kidogo_yachin != null) {\n      $(\"#kidogo_yachin\").val(jfc_template_kidogo_yachin);\n      $(\"#text_kidogo_yachin\").val(\n        jfc_template_kidogo_yachin.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 支払利息 創業当初\n    const jfc_template_tosho_risoku =\n      selectedFoundingTemplateJson.jfc_template_tosho_risoku;\n    if (jfc_template_tosho_risoku != null) {\n      $(\"#tosho_risoku\").val(jfc_template_tosho_risoku);\n      $(\"#text_tosho_risoku\").val(\n        jfc_template_tosho_risoku.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 支払利息 軌道に乗った後\n    const jfc_template_kidogo_risoku =\n      selectedFoundingTemplateJson.jfc_template_kidogo_risoku;\n    if (jfc_template_kidogo_risoku != null) {\n      $(\"#kidogo_risoku\").val(jfc_template_kidogo_risoku);\n      $(\"#text_kidogo_risoku\").val(\n        jfc_template_kidogo_risoku.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // その他 創業当初\n    const jfc_template_tosho_sonota =\n      selectedFoundingTemplateJson.jfc_template_tosho_sonota;\n    if (jfc_template_tosho_sonota != null) {\n      $(\"#tosho_sonota\").val(jfc_template_tosho_sonota);\n      $(\"#text_tosho_sonota\").val(\n        jfc_template_tosho_sonota.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // その他 軌道に乗った後\n    const jfc_template_kidogo_sonota =\n      selectedFoundingTemplateJson.jfc_template_kidogo_sonota;\n    if (jfc_template_kidogo_sonota != null) {\n      $(\"#kidogo_sonota\").val(jfc_template_kidogo_sonota);\n      $(\"#text_kidogo_sonota\").val(\n        jfc_template_kidogo_sonota.toLocaleString(\"ja-JP\")\n      );\n    }\n\n    // 項目7 必要な資金と調達方法の合計値計算\n    calcSection7();\n\n    // モバイル画面の入力状態表示を変更\n    $('#founding_template_reflected').trigger('click');\n  });\n});\n\n// 隠していたフォームの表示\n$(function () {\n  $(\".js-show-additional-form\").on(\"click\", function () {\n    var targetId = $(this).data(\"target\");\n    // 子要素で隠れているものを全表示\n    $(\"#\" + targetId)\n      .children()\n      .each(function () {\n        $(this).removeClass(\"d-none\");\n      });\n    // ボタン要素を非表示\n    $(this).addClass(\"d-none\");\n  });\n});\n\n// フローティングメニュー\n$(function () {\n  if ($(\".jfc-templates-aside\").length) {\n    const thresholdOffset = 80;\n\n    $(window).scroll(function () {\n      const sectionBasicTop = $(\"#section_basic\").offset().top;\n      const section1Top = $(\"#section_1\").offset().top;\n      const section2Top = $(\"#section_2\").offset().top;\n      const section3Top = $(\"#section_3\").offset().top;\n      const section4Top = $(\"#section_4\").offset().top;\n      const section5Top = $(\"#section_5\").offset().top;\n      const section6Top = $(\"#section_6\").offset().top;\n      const section7Top = $(\"#section_7\").offset().top;\n      const section8Top = $(\"#section_8\").offset().top;\n      const section9Top = $(\"#section_9\").offset().top;\n\n      const scroll = $(window).scrollTop();\n\n      const sectionThreshold = scroll + thresholdOffset;\n\n      if (\n        sectionBasicTop <= sectionThreshold &&\n        sectionThreshold < section1Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_basic'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section1Top <= sectionThreshold &&\n        sectionThreshold < section2Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_1'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section2Top <= sectionThreshold &&\n        sectionThreshold < section3Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_2'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section3Top <= sectionThreshold &&\n        sectionThreshold < section4Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_3'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section4Top <= sectionThreshold &&\n        sectionThreshold < section5Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_4'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section5Top <= sectionThreshold &&\n        sectionThreshold < section6Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_5'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section6Top <= sectionThreshold &&\n        sectionThreshold < section7Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_6'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section7Top <= sectionThreshold &&\n        sectionThreshold < section8Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_7'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (\n        section8Top <= sectionThreshold &&\n        sectionThreshold < section9Top\n      ) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_8'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else if (section9Top <= sectionThreshold) {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n        $(\"a[href='#section_9'].jfc-templates-aside__menu-item\").addClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      } else {\n        $(\".jfc-templates-aside__menu-item\").removeClass(\n          \"jfc-templates-aside__menu-item__active\"\n        );\n      }\n    });\n  }\n});\n\n$(function () {\n  if ($(\"#jfc_templates_edit_sp_main_section\").length) {\n    beforeunloadHandler();\n\n    $(\"button[type='submit'], a:not(.anchor-link)\").on(\"click\", function() {\n      $(window).off(\"beforeunload\");\n\n      if ($(this).attr(\"id\") == \"plan_download_modal_plan_download_link\") {\n        setTimeout(function() {\n          beforeunloadHandler();\n        }, 500);\n      }\n    });\n\n    function beforeunloadHandler() {\n      $(window).on(\"beforeunload\", function(event) {\n        event.preventDefault();\n        event.returnValue = \"\";\n      });\n    }\n  }\n});\n","import {selectOnChangeSubmit} from '../packs/modules/select_on_change_submit'\nimport {deleteParameterFromUrl} from \"../packs/modules/delete_parameter_from_url\";\n\n$(() => {\n  selectOnChangeSubmit(\".js-easy_diagnosis_order_subsidy_type_select\", \"#order_subsidy_type_hidden_value\", \"#easy_diagnosis_complete_form\");\n\n  if (location.pathname.indexOf('/search/diagnose/') === 0) {\n    deleteParameterFromUrl(location, 'from_submit_button');\n  }\n});\n\n$(function() {\n  if ($('#easy_diagnosis_start_form').length) {\n    $('a[href=\"/log_in\"], a[href=\"/sign_up\"], #easy_diagnosis_start_form_submit').on('click', function() {\n      // かんたん診断回答フォームの値をjson形式に変換してcookieに保存\n      const form = $('#easy_diagnosis_start_form');\n      const elements = form.find('input:checked');\n\n      const diagnosisAnswersArray = {}\n\n      elements.each(function() {\n        const regex = /^kantanshindan_answer\\[question_[0-9]{3}_answer\\]$/\n        if (regex.test($(this).attr('name'))) {\n          const item = $(this).attr('name').match(/[0-9]{3}/);\n          if (item != null) {\n            const key = item[0];\n            const value = $(this).val();\n\n            diagnosisAnswersArray[key] = value;\n          }\n        }\n      });\n\n      const diagnosisAnswersJson = JSON.stringify(diagnosisAnswersArray);\n\n      setCookie('diagnosis_answers', diagnosisAnswersJson);\n    });\n  }\n\n  function setCookie(key, value) {\n    let cookie = key + '=' + encodeURIComponent(value) + ';';\n\n    cookie += 'path=/;';\n\n    // 有効期限: 20年\n    let expires = new Date();\n    expires.setFullYear(expires.getFullYear() + 20);\n    cookie += 'expires=' + expires + ';';\n\n    cookie += 'samesite=lax;';\n\n    document.cookie = cookie;\n  };\n\n  function deleteCookie(key) {\n    let cookie = key + '=;path=/;max-age=0;';\n    document.cookie = cookie;\n  };\n});\n","// ▼ 注意書き *********************************** //\n\nfunction toggleCautionQuestion104Answer() {\n  const question104Answer = $(\"#kantanshindan_answer_question_104_answer\").prop(\"checked\");\n  const question102Answer = $(\"input[name='kantanshindan_answer[question_102_answer]']:checked\").val();\n\n  if (!(question104Answer || (!question104Answer && question102Answer === '1'))) {\n    $(\"#caution__question_104_answer\").show();\n  } else {\n    $(\"#caution__question_104_answer\").hide();\n  }\n}\n\nfunction toggleCautionQuestion105Answer() {\n  const question105Answer = $(\"#kantanshindan_answer_question_105_answer\").prop(\"checked\");\n\n  if (!question105Answer) {\n    $(\"#caution__question_105_answer\").show();\n  } else {\n    $(\"#caution__question_105_answer\").hide();\n  }\n}\n\nfunction toggleCautionQuestion106Answer() {\n  const question106Answer = $(\"#kantanshindan_answer_question_106_answer\").prop(\"checked\");\n\n  if (!question106Answer) {\n    $(\"#caution__question_106_answer\").show();\n  } else {\n    $(\"#caution__question_106_answer\").hide();\n  }\n}\n\nfunction toggleCautionQuestion107Answer() {\n  const question107Answer = $(\"#kantanshindan_answer_question_107_answer\").prop(\"checked\");\n\n  if (!question107Answer) {\n    $(\"#caution__question_107_answer\").show();\n  } else {\n    $(\"#caution__question_107_answer\").hide();\n  }\n}\n\nfunction toggleCautionQuestion108Answer() {\n  const question108Answer = $(\"#kantanshindan_answer_question_108_answer\").prop(\"checked\");\n\n  if (!question108Answer) {\n    $(\"#caution__question_108_answer\").show();\n  } else {\n    $(\"#caution__question_108_answer\").hide();\n  }\n}\n\nfunction toggleCautionQuestion109Answer() {\n  const question109Answer = $(\"#kantanshindan_answer_question_109_answer\").prop(\"checked\");\n\n  if (!question109Answer) {\n    $(\"#caution__question_109_answer\").show();\n  } else {\n    $(\"#caution__question_109_answer\").hide();\n  }\n}\n\nfunction toggleCautionQuestion110Answer() {\n  const question110Answer = $(\"#kantanshindan_answer_question_110_answer\").prop(\"checked\");\n\n  if (!question110Answer) {\n    $(\"#caution__question_110_answer\").show();\n  } else {\n    $(\"#caution__question_110_answer\").hide();\n  }\n}\n\n// ▲ 注意書き *********************************** //\n\n// ▼ 設問表示切替 ******************************* //\n\n// 「雇用」について実施したいことを選択してください\nfunction toggleQ3Section() {\n  const question103Answer = $(\"#kantanshindan_answer_question_103_answer\").prop(\"checked\");\n  const question105Answer = $(\"#kantanshindan_answer_question_105_answer\").prop(\"checked\");\n  const question106Answer = $(\"#kantanshindan_answer_question_106_answer\").prop(\"checked\");\n  const question108Answer = $(\"#kantanshindan_answer_question_108_answer\").prop(\"checked\");\n  const question109Answer = $(\"#kantanshindan_answer_question_109_answer\").prop(\"checked\");\n  const question110Answer = $(\"#kantanshindan_answer_question_110_answer\").prop(\"checked\");\n\n  if (!question103Answer || !question105Answer || !question106Answer || !question108Answer || !question109Answer || !question110Answer) {\n    $(\"#shindan_q3\").hide();\n  } else {\n    $(\"#shindan_q3\").show();\n  }\n}\n\n// 「従業員」について実施したいことを選択してください\nfunction toggleQ4Section() {\n  const question102Answer = $(\"input[name='kantanshindan_answer[question_102_answer]']:checked\").val();\n  const question103Answer = $(\"#kantanshindan_answer_question_103_answer\").prop(\"checked\");\n  const question105Answer = $(\"#kantanshindan_answer_question_105_answer\").prop(\"checked\");\n  const question106Answer = $(\"#kantanshindan_answer_question_106_answer\").prop(\"checked\");\n  const question108Answer = $(\"#kantanshindan_answer_question_108_answer\").prop(\"checked\");\n  const question109Answer = $(\"#kantanshindan_answer_question_109_answer\").prop(\"checked\");\n  const question110Answer = $(\"#kantanshindan_answer_question_110_answer\").prop(\"checked\");\n\n  if ((question102Answer === '1' && !question103Answer) || !question105Answer || !question106Answer || !question108Answer || !question109Answer || !question110Answer) {\n    $(\"#shindan_q4\").hide();\n  } else {\n    $(\"#shindan_q4\").show();\n  }\n}\n\n// ▲ 設問表示切替 ******************************* //\n\n$('#shindan_q1 input').on('change', function() {\n  toggleCautionQuestion104Answer();\n  toggleCautionQuestion105Answer();\n  toggleCautionQuestion106Answer();\n  toggleCautionQuestion107Answer();\n  toggleCautionQuestion108Answer();\n  toggleCautionQuestion109Answer();\n  toggleCautionQuestion110Answer();\n\n  toggleQ3Section();\n  toggleQ4Section();\n});\n\n// 表示非表示関係はここまで\n\n// フォームallチェック\nconst employmentCheckboxes = document.querySelectorAll(\n  \".needs-of-employment--checkbox\"\n);\nconst businessCheckboxes = document.querySelectorAll(\n  \".needs-of-business--checkbox\"\n);\nconst employeeCheckboxes = document.querySelectorAll(\n  \".needs-of-employee--checkbox\"\n);\nconst othersCheckboxes = document.querySelectorAll(\n  \".needs-of-others--checkbox\"\n);\n\n$(\"#needs-of-employment-allcheck\").on(\"change\", function () {\n  if ($(this).prop(\"checked\")) {\n    employmentCheckboxes.forEach((checkbox) => {\n      checkbox.checked = true;\n    });\n  } else {\n    employmentCheckboxes.forEach((checkbox) => {\n      checkbox.checked = false;\n    });\n  }\n});\n\n$(\"#needs-of-business-allcheck\").on(\"change\", function () {\n  if ($(this).prop(\"checked\")) {\n    businessCheckboxes.forEach((checkbox) => {\n      checkbox.checked = true;\n    });\n  } else {\n    businessCheckboxes.forEach((checkbox) => {\n      checkbox.checked = false;\n    });\n  }\n});\n\n$(\"#needs-of-employee-allcheck\").on(\"change\", function () {\n  if ($(this).prop(\"checked\")) {\n    employeeCheckboxes.forEach((checkbox) => {\n      checkbox.checked = true;\n    });\n  } else {\n    employeeCheckboxes.forEach((checkbox) => {\n      checkbox.checked = false;\n    });\n  }\n});\n\n// ページロード時\n$(function() {\n  toggleCautionQuestion104Answer();\n  toggleCautionQuestion105Answer();\n  toggleCautionQuestion106Answer();\n  toggleCautionQuestion107Answer();\n  toggleCautionQuestion108Answer();\n  toggleCautionQuestion109Answer();\n  toggleCautionQuestion110Answer();\n\n  toggleQ3Section();\n  toggleQ4Section();\n\n  allCheck('.needs-of-employment--checkbox', '#needs-of-employment-allcheck');\n  allCheck('.needs-of-business--checkbox', '#needs-of-business-allcheck');\n  allCheck('.needs-of-employee--checkbox', '#needs-of-employee-allcheck');\n\n  function allCheck(innerCheckboxSelector, allCheckboxSelector) {\n    if ($(innerCheckboxSelector).length == $(innerCheckboxSelector + ':checked').length) {\n      $(allCheckboxSelector).prop(\"checked\", true);\n    }\n  }\n});\n","function toggleTableAccordion(btnId, itemClass, btnTextId, btnIconId) {\n  const accordionBtn = document.getElementById(btnId);\n  const accordionItems = document.querySelectorAll(`.${itemClass}`);\n  const btnText = document.getElementById(btnTextId);\n  const btnIcon = document.getElementById(btnIconId);\n  if (accordionBtn && accordionItems && btnText && btnIcon) {\n    accordionBtn.addEventListener(\"click\", function () {\n      accordionItems.forEach((item) => {\n        if (item.classList.contains(\"display\")) {\n          item.classList.remove(\"display\");\n          btnText.textContent = \"内訳を見る\";\n          btnIcon.style.transform = \"rotate(90deg)\";\n        } else {\n          item.classList.add(\"display\");\n          btnText.textContent = \"閉じる\";\n          btnIcon.style.transform = \"rotate(270deg)\";\n        }\n      });\n    });\n  }\n}\n\nfor (let i = 1; i <= 3; i++) {\n  const btnId = `suuchiBtn${i}`;\n  const itemClass = `suuchiTableDetail${i}`;\n  const btnTextId = `suuchiBtnText${i}`;\n  const btnIconId = `suuchiBtnIcon${i}`;\n  toggleTableAccordion(btnId, itemClass, btnTextId, btnIconId);\n}\n","$(function() {\n  const copySpModal = document.getElementById(\"copy-sp\");\n  if (copySpModal) {\n    copySpModal.addEventListener('show.bs.modal', event => {\n      const button = event.relatedTarget;\n      const copyText = button.getAttribute('data-bs-copy-text');\n      const copyTarget = copySpModal.querySelector(\"#copyTarget2\");\n      copyTarget.textContent = copyText;\n    });\n  }\n});\n","// const suggestResult = [\"助成金\", \"補助金\", \"助成金申請\"]; // バックエンドから送られてくるサジェスト配列\n\nconst keywordHidden = document.getElementById(\"ls-keyword\");\nconst inputField = document.getElementById(\"ls-keywords\");\nconst suggestionsBox = document.getElementById(\"ls-suggestions\");\nconst inputFieldSp = document.getElementById(\"ls-keywords-sp\");\nconst suggestionsBoxSp = document.getElementById(\"ls-suggestions-sp\");\n\nlet getSuggestionsTimer;\nlet inputStr;\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  if (inputField) {\n    inputField.addEventListener(\"input\", reflectInputTextField);\n    inputField.addEventListener(\"keyup\", reflectInputTextField);\n    inputField.addEventListener(\"click\", reflectInputTextField);\n\n    inputField.addEventListener(\"input\", handleCursorMove);\n    inputField.addEventListener(\"keyup\", handleCursorMove);\n    inputField.addEventListener(\"click\", handleCursorMove);\n  }\n  if (inputFieldSp) {\n    inputFieldSp.addEventListener(\"input\", reflectInputTextField);\n    inputFieldSp.addEventListener(\"keyup\", reflectInputTextField);\n    inputFieldSp.addEventListener(\"click\", reflectInputTextField);\n\n    inputFieldSp.addEventListener(\"input\", handleCursorMove);\n    inputFieldSp.addEventListener(\"keyup\", handleCursorMove);\n    inputFieldSp.addEventListener(\"click\", handleCursorMove);\n  }\n\n  document.addEventListener(\"click\", (event) => {\n    if (\n      suggestionsBox &&\n      !suggestionsBox.contains(event.target) &&\n      event.target !== inputField\n    ) {\n      hideSuggestions(suggestionsBox);\n    }\n\n    if (\n      suggestionsBoxSp &&\n      !suggestionsBoxSp.contains(event.target) &&\n      event.target !== inputFieldSp\n    ) {\n      hideSuggestions(suggestionsBoxSp);\n    }\n  });\n\n  function handleCursorMove(event) {\n    if (event.target == inputField) {\n      inputStr = getWordAtCursor(inputField);\n    } else {\n      inputStr = getWordAtCursor(inputFieldSp);\n    }\n\n    if (getSuggestionsTimer) {\n      clearTimeout(getSuggestionsTimer);\n    }\n    getSuggestionsTimer = setTimeout(getSuggestions, 100)\n  }\n\n  function getSuggestions() {\n    if (inputStr) {\n      query = \"/api/v1/study_search_suggestions?str=\" + inputStr\n      $.getJSON(query)\n      .done(function(data) {\n        let suggestResult = [];\n        if (data) {\n          suggestResult = data;\n        }\n        displaySuggestions(suggestResult, inputField, suggestionsBox);\n        displaySuggestions(suggestResult, inputFieldSp, suggestionsBoxSp);\n      });\n    } else {\n      hideSuggestions(suggestionsBox);\n      hideSuggestions(suggestionsBoxSp);\n    }\n  }\n\n  function getWordAtCursor(inputElement) {\n    const { selectionStart, value } = inputElement;\n\n    const leftPart = value.slice(0, selectionStart);\n    const leftSpaceIndex = leftPart.lastIndexOf(\" \");\n    const leftFullWidthSpaceIndex = leftPart.lastIndexOf(\" \");\n    const left = Math.max(leftSpaceIndex, leftFullWidthSpaceIndex) + 1;\n\n    const rightPart = value.slice(selectionStart);\n    const rightSpaceIndex = rightPart.indexOf(\" \");\n    const rightFullWidthSpaceIndex = rightPart.indexOf(\" \");\n    const right =\n      selectionStart +\n      (rightSpaceIndex === -1 && rightFullWidthSpaceIndex === -1\n        ? rightPart.length\n        : Math.min(\n            rightSpaceIndex === -1 ? Infinity : rightSpaceIndex,\n            rightFullWidthSpaceIndex === -1\n              ? Infinity\n              : rightFullWidthSpaceIndex\n          ));\n\n    const cursorWord = value.slice(left, right);\n\n    return cursorWord;\n  }\n\n  function displaySuggestions(suggestions, inputField, suggestionsBox) {\n    suggestionsBox.innerHTML = \"\";\n    suggestions.forEach((suggestion) => {\n      const suggestionItem = document.createElement(\"div\");\n      suggestionItem.classList.add(\"ls-suggestion__item\");\n      suggestionItem.textContent = suggestion;\n      suggestionItem.addEventListener(\"click\", () => {\n        replaceWordAtCursor(inputField, suggestion);\n        reflectInputTextField();\n        suggestionsBox.innerHTML = \"\";\n      });\n      suggestionsBox.appendChild(suggestionItem);\n    });\n\n    showSuggestions(suggestionsBox);\n  }\n\n  function replaceWordAtCursor(inputElement, newWord) {\n    const { selectionStart, value } = inputElement;\n\n    const leftPart = value.slice(0, selectionStart);\n    const leftSpaceIndex = leftPart.lastIndexOf(\" \");\n    const leftFullWidthSpaceIndex = leftPart.lastIndexOf(\" \");\n    const left = Math.max(leftSpaceIndex, leftFullWidthSpaceIndex) + 1;\n\n    const rightPart = value.slice(selectionStart);\n    const rightSpaceIndex = rightPart.indexOf(\" \");\n    const rightFullWidthSpaceIndex = rightPart.indexOf(\" \");\n    const right =\n      selectionStart +\n      (rightSpaceIndex === -1 && rightFullWidthSpaceIndex === -1\n        ? rightPart.length\n        : Math.min(\n            rightSpaceIndex === -1 ? Infinity : rightSpaceIndex,\n            rightFullWidthSpaceIndex === -1\n              ? Infinity\n              : rightFullWidthSpaceIndex\n          ));\n\n    const before = value.slice(0, left);\n    const after = value.slice(right);\n\n    inputElement.value = before + newWord + after;\n\n    const newCursorPosition = left + newWord.length;\n    inputElement.setSelectionRange(newCursorPosition, newCursorPosition);\n  }\n});\n\nfunction reflectInputTextField() {\n  if (inputField.value !== keywordHidden.value) {\n    keywordHidden.value = inputField.value;\n    inputFieldSp.value = inputField.value;\n  }\n  if (inputFieldSp.value !== keywordHidden.value) {\n    keywordHidden.value = inputFieldSp.value;\n    inputField.value = inputFieldSp.value;\n  }\n}\n\nfunction showSuggestions(suggestionsBox) {\n  if (suggestionsBox) {\n    suggestionsBox.style.display = \"block\";\n  }\n}\n\nfunction hideSuggestions(suggestionsBox) {\n  if (suggestionsBox) {\n    suggestionsBox.style.display = \"none\";\n  }\n}\n","// // TOPページのタグ\n// const topSearchTagData = [\n//   \"融資\",\n//   \"金融機関\",\n//   \"計画\",\n//   \"審査\",\n//   \"基本\",\n//   \"資金繰り\",\n//   \"銀行\",\n//   \"専門家\",\n//   \"申請\",\n//   \"起業・開業\",\n// ];\n\n// // 検索結果ページのタグで、バックエンドから取得\n// const resultSearchTagData = [\n//   \"テスト1\",\n//   \"テスト2\",\n//   \"融資\",\n//   \"金融機関\",\n//   \"計画\",\n//   \"審査\",\n//   \"基本\",\n//   \"資金繰り\",\n//   \"銀行\",\n//   \"専門家\",\n//   \"申請\",\n//   \"起業・開業\",\n// ];\n\nconst tagsInput = document.getElementById(\"ls-tags\");\n\nconst searchTagsContainer = document.getElementById(\"ls-tagButton\");\nconst searchTagsContainerSp = document.getElementById(\"ls-tagButton-sp\");\nconst searchTagsResultContainer = document.getElementById(\"ls-tagButtonResult\");\nconst searchTagsResultContainerSp = document.getElementById(\n  \"ls-tagButtonResult-sp\"\n);\n\nconst createTagsList = (tagData, targetList, isSp) => {\n  tagData.forEach((tag) => {\n    const button = document.createElement(\"button\");\n    button.textContent = tag;\n    button.type = \"button\";\n    button.classList.add(\"ls-searchTag__item\");\n    if (isSp) {\n      button.classList.add(\"ls-searchTag__item--sp\");\n    }\n    targetList.appendChild(button);\n\n    // タグを押したときの挙動を実装\n    button.addEventListener(\"click\", () => {\n      toggleTagSelection(tag);\n    });\n  });\n};\n\nconst createTagsList1 = () => {\n  const tagItems = document.querySelectorAll(\":not(#ls-popluarTagButton) > .ls-searchTag__item\")\n\n  tagItems.forEach((tagItem) => {\n    // タグを押したときの挙動を実装\n    tagItem.addEventListener(\"click\", () => {\n      toggleTagSelection(tagItem.textContent);\n    });\n  });\n};\n\nconst toggleTagSelection = (tag) => {\n  const buttons = document.querySelectorAll(\":not(#ls-popluarTagButton) > .ls-searchTag__item\")\n  buttons.forEach((button) => {\n    if (button.textContent === tag) {\n      button.classList.toggle(\"selected\");\n    }\n  });\n  updateTagsInput();\n};\n\n// タグを押したときに一番前に持ってくる\nconst prependTag = (targetList) => {\n  document.querySelectorAll(\".ls-searchTag__item--sp\").forEach((button) => {\n    button.addEventListener(\"click\", function () {\n      targetList.prepend(this);\n      sortSpTag(targetList);\n    });\n  });\n};\n\n// タグを押したときに一番前に持ってくる\nconst prependTag1 = (targetList) => {\n  document.querySelectorAll(\"#ls-tagButton > .ls-searchTag__item\").forEach((pcTagButton) => {\n    pcTagButton.addEventListener(\"click\", function () {\n      let targetItem = null;\n      targetList.querySelectorAll(\"button\").forEach((targetButton) => {\n        if (targetButton.textContent === pcTagButton.textContent) {\n          targetItem = targetButton;\n        }\n      });\n      if (targetItem) {\n        targetList.prepend(targetItem);\n      }\n      sortSpTag(targetList);\n    });\n  });\n}\n\n// 選択されているタグが前に選択されていないタグが後になるようにタグを並べ替える\nconst sortSpTag = (targetList) => {\n  selectedButtons = []\n  unSelectedButtons = []\n  targetList.querySelectorAll(\"button\").forEach((button) => {\n    if (button.classList.contains(\"selected\")) {\n      selectedButtons.push(button);\n    } else {\n      unSelectedButtons.push(button);\n    }\n  });\n  selectedButtons.forEach((button) => {\n    targetList.append(button);\n  });\n  unSelectedButtons.forEach((button) => {\n    targetList.append(button);\n  });\n}\n\n// TOPページにタグを表示\nif (searchTagsContainer && searchTagsContainerSp) {\n  // createTagsList(topSearchTagData, searchTagsContainer);\n  // createTagsList(topSearchTagData, searchTagsContainerSp, true);\n  createTagsList1();\n  prependTag(searchTagsContainerSp);\n  prependTag1(searchTagsContainerSp);\n}\n\n// // 結果ページにタグを表示\n// if (searchTagsResultContainer && searchTagsResultContainerSp) {\n//   createTagsList(resultSearchTagData, searchTagsResultContainer);\n//   createTagsList(resultSearchTagData, searchTagsResultContainerSp, true);\n//   prependTag(searchTagsResultContainerSp);\n\n//   // 結果ページでは検索に使われているタグを選択状態にする\n//   document.addEventListener(\"DOMContentLoaded\", function () {\n//     const urlParams = new URLSearchParams(window.location.search);\n//     const tagsParam = urlParams.get(\"sc[tag]\");\n//     tagsInput.value = tagsParam;\n//     if (tagsParam) {\n//       const tags = tagsParam.split(\",\").map((tag) => tag.trim());\n//       const tagButtons = document.querySelectorAll(\".ls-searchTag__item\");\n//       tagButtons.forEach((button) => {\n//         if (tags.includes(button.textContent)) {\n//           button.classList.add(\"selected\");\n//         }\n//       });\n//     }\n//   });\n// }\n\n// 結果ページを読み込み時にタグを並べ替える\nif (searchTagsResultContainerSp) {\n  document.addEventListener(\"DOMContentLoaded\", sortSpTag(searchTagsResultContainerSp));\n}\n\n// クエリパラメータに反映させる\nconst updateTagsInput = () => {\n  const selectedTags = [];\n  const selectedTagButtons = document.querySelectorAll(\n    \".ls-searchTag__item.selected\"\n  );\n\n  if (selectedTagButtons.length > 0) {\n    selectedTagButtons.forEach((tag) => {\n      selectedTags.push(tag.textContent);\n      const uniqueSelectedTags = [...new Set(selectedTags)];\n      tagsInput.value = uniqueSelectedTags.join(\", \");\n    });\n  } else {\n    tagsInput.value = \"\";\n  }\n};\n","// // 仮のカテゴリーデータ\n// const categoryData = [\n//   {\n//     major: \"大カテゴリ1\",\n//     minor: [\"小カテゴリ1-1\", \"小カテゴリ1-2\", \"小カテゴリ1-3\"],\n//   },\n//   {\n//     major: \"大カテゴリ2\",\n//     minor: [\"小カテゴリ2-1\", \"小カテゴリ2-2\", \"小カテゴリ2-3\"],\n//   },\n//   {\n//     major: \"大カテゴリ3\",\n//     minor: [\"小カテゴリ3-1\", \"小カテゴリ3-2\", \"小カテゴリ3-3\"],\n//   },\n// ];\n\nconst categoryInput = document.getElementById(\"ls-category\");\n\nconst categoryButton = document.getElementById(\"ls-categoryButton\");\nconst categoryList = document.getElementById(\"ls-categoryList\");\n\nconst categoryButtonSp = document.getElementById(\"ls-categoryButtonSp\");\nconst categoryListSp = document.getElementById(\"ls-categoryListSp\");\nconst categoryListCloseSp = document.getElementById(\"ls-categoryListCloseSp\");\nconst categoryListBgSp = document.getElementById(\"ls-categoryListBgSp\");\n\nconst categoryListResult = document.getElementById(\"ls-categoryListResult\");\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  if (categoryList) {\n    // categoryList.innerHTML = \"\";\n    // categoryData.forEach((category) => {\n    //   const majorItem = createMajorCategory(category.major);\n    //   categoryList.appendChild(majorItem);\n    //   category.minor.forEach((minorCategory) => {\n    //     const minorItem = createMinorCategory(minorCategory);\n    //     categoryList.appendChild(minorItem);\n    //   });\n    // });\n    createCategoryDrawer1(categoryList);\n  }\n\n  if (categoryListSp) {\n    // createCategoryDrawer(categoryListSp);\n    createCategoryDrawer2(categoryListSp);\n  }\n  if (categoryListResult) {\n    // createCategoryDrawer(categoryListResult);\n    createCategoryDrawer3(categoryListResult);\n  }\n});\n\nif (categoryButton) {\n  categoryButton.addEventListener(\"click\", () => {\n    categoryList.classList.toggle(\"show\");\n    const iconPlus = categoryButton.querySelector(\n      \".ls-categoryButton__icon--plus\"\n    );\n    const iconMinus = categoryButton.querySelector(\n      \".ls-categoryButton__icon--minus\"\n    );\n    if (iconPlus && iconMinus) {\n      iconPlus.classList.toggle(\"hidden\");\n      iconMinus.classList.toggle(\"hidden\");\n    }\n  });\n}\n\nif (categoryButtonSp) {\n  categoryButtonSp.addEventListener(\"click\", () => {\n    categoryListSp.classList.toggle(\"show\");\n    categoryListBgSp.classList.toggle(\"show\");\n  });\n}\n\nif (categoryButtonSp) {\n  categoryListBgSp.addEventListener(\"click\", () => {\n    categoryListSp.classList.toggle(\"show\");\n    categoryListBgSp.classList.toggle(\"show\");\n  });\n}\n\nif (categoryListCloseSp) {\n  categoryListCloseSp.addEventListener(\"click\", () => {\n    categoryListSp.classList.remove(\"show\");\n    categoryListBgSp.classList.remove(\"show\");\n  });\n}\n\nconst createMajorCategory = (majorCategory) => {\n  const item = document.createElement(\"button\");\n  item.className = \"ls-categoryList__item ls-categoryList__item--major\";\n  item.textContent = majorCategory;\n  item.addEventListener(\"click\", (event) => {\n    event.preventDefault();\n    updateCategory(majorCategory);\n  });\n  return item;\n};\nconst createMinorCategory = (minorCategory) => {\n  const item = document.createElement(\"button\");\n  item.className = \"ls-categoryList__item ls-categoryList__item--minor\";\n  item.textContent = minorCategory;\n  item.addEventListener(\"click\", (event) => {\n    event.preventDefault();\n    updateCategory(minorCategory);\n  });\n  return item;\n};\nconst createCategoryDrawer = (targetList) => {\n  categoryData.forEach((category) => {\n    const categoryItem = document.createElement(\"div\");\n    categoryItem.className = \"ls-categoryListSp__item\";\n\n    const majorItem = document.createElement(\"div\");\n    majorItem.className = \"ls-categoryListSp__item--major\";\n    majorItem.innerHTML = `\n    <div class=\"ls-categoryListSp__itemWrapper--major\">\n    <button type=\"button\">${category.major}</button>\n    <div class=\"ls-categoryListSp__toggleIcon\">\n    <div class=\"ls-categoryListSp__toggleIcon--plus\"></div>\n    <div class=\"ls-categoryListSp__toggleIcon--minus hidden\"></div>\n    </div>\n    </div>`;\n\n    const majorButton = majorItem.querySelector(\"button\");\n    majorButton.addEventListener(\"click\", (event) => {\n      event.preventDefault();\n      updateCategory(category.major);\n    });\n\n    const minorItemWrapper = document.createElement(\"div\");\n    minorItemWrapper.className = \"ls-categoryListSp__itemWrapper--minor\";\n\n    category.minor.forEach((item) => {\n      const minorItem = document.createElement(\"button\");\n      minorItem.type = \"button\";\n      minorItem.textContent = item;\n      minorItem.className = \"ls-categoryListSp__item--minor\";\n      minorItemWrapper.appendChild(minorItem);\n\n      minorItem.addEventListener(\"click\", (event) => {\n        event.preventDefault();\n        updateCategory(item);\n      });\n    });\n\n    const toggleIcon = majorItem.querySelector(\n      \".ls-categoryListSp__toggleIcon\"\n    );\n    const plusIcon = toggleIcon.querySelector(\n      \".ls-categoryListSp__toggleIcon--plus\"\n    );\n    const minusIcon = toggleIcon.querySelector(\n      \".ls-categoryListSp__toggleIcon--minus\"\n    );\n\n    toggleIcon.addEventListener(\"click\", (e) => {\n      e.stopPropagation();\n\n      if (!minorItemWrapper.classList.contains(\"show\")) {\n        minorItemWrapper.style.display = \"block\";\n        const height = minorItemWrapper.scrollHeight;\n        minorItemWrapper.style.display = \"\";\n        minorItemWrapper.style.setProperty(\"--content-height\", `${height}px`);\n      } else {\n        minorItemWrapper.style.setProperty(\"--content-height\", \"0px\");\n      }\n\n      minorItemWrapper.classList.toggle(\"show\");\n      plusIcon.classList.toggle(\"hidden\");\n      minusIcon.classList.toggle(\"hidden\");\n    });\n\n    categoryItem.appendChild(majorItem);\n    categoryItem.appendChild(minorItemWrapper);\n    targetList.appendChild(categoryItem);\n  });\n};\n\nconst createCategoryDrawer1 = (targetList) => {\n  const categoryListItems = targetList.querySelectorAll(\".ls-categoryList__item\");\n\n  categoryListItems.forEach((categoryListItem) => {\n    categoryListItem.addEventListener(\"click\", (event) => {\n      event.preventDefault();\n      updateCategory(categoryListItem.textContent);\n    });\n  });\n}\n\nconst createCategoryDrawer2 = (targetList) => {\n  const categoryItems = targetList.querySelectorAll(\".ls-categoryListSp__item\");\n\n  categoryItems.forEach((categoryItem) => {\n    const majorItem = categoryItem.querySelector(\".ls-categoryListSp__item--major\");\n\n    const majorButton = majorItem.querySelector(\"button\");\n    majorButton.addEventListener(\"click\", (event) => {\n      event.preventDefault();\n      updateCategory(majorButton.textContent);\n    });\n\n    const minorItemWrapper = categoryItem.querySelector(\".ls-categoryListSp__itemWrapper--minor\");\n\n    const minorItems = minorItemWrapper.querySelectorAll(\".ls-categoryListSp__item--minor\");\n    minorItems.forEach((minorItem) => {\n      minorItem.addEventListener(\"click\", (event) => {\n        event.preventDefault();\n        updateCategory(minorItem.textContent);\n      });\n    });\n\n    const toggleIcon = majorItem.querySelector(\n      \".ls-categoryListSp__toggleIcon\"\n    );\n    const plusIcon = toggleIcon.querySelector(\n      \".ls-categoryListSp__toggleIcon--plus\"\n    );\n    const minusIcon = toggleIcon.querySelector(\n      \".ls-categoryListSp__toggleIcon--minus\"\n    );\n\n    toggleIcon.addEventListener(\"click\", (e) => {\n      e.stopPropagation();\n\n      if (!minorItemWrapper.classList.contains(\"show\")) {\n        minorItemWrapper.style.display = \"block\";\n        const height = minorItemWrapper.scrollHeight;\n        minorItemWrapper.style.display = \"\";\n        minorItemWrapper.style.setProperty(\"--content-height\", `${height}px`);\n      } else {\n        minorItemWrapper.style.setProperty(\"--content-height\", \"0px\");\n      }\n\n      minorItemWrapper.classList.toggle(\"show\");\n      plusIcon.classList.toggle(\"hidden\");\n      minusIcon.classList.toggle(\"hidden\");\n    });\n  });\n};\n\nconst createCategoryDrawer3 = (targetList) => {\n  const categoryItems = targetList.querySelectorAll(\".ls-categoryListSp__item\");\n\n  categoryItems.forEach((categoryItem) => {\n    const majorItem = categoryItem.querySelector(\".ls-categoryListSp__item--major\");\n    const minorItemWrapper = categoryItem.querySelector(\".ls-categoryListSp__itemWrapper--minor\");\n\n    const toggleIcon = majorItem.querySelector(\n      \".ls-categoryListSp__toggleIcon\"\n    );\n    const plusIcon = toggleIcon.querySelector(\n      \".ls-categoryListSp__toggleIcon--plus\"\n    );\n    const minusIcon = toggleIcon.querySelector(\n      \".ls-categoryListSp__toggleIcon--minus\"\n    );\n\n    toggleIcon.addEventListener(\"click\", (e) => {\n      e.stopPropagation();\n\n      if (!minorItemWrapper.classList.contains(\"show\")) {\n        minorItemWrapper.style.display = \"block\";\n        const height = minorItemWrapper.scrollHeight;\n        minorItemWrapper.style.display = \"\";\n        minorItemWrapper.style.setProperty(\"--content-height\", `${height}px`);\n      } else {\n        minorItemWrapper.style.setProperty(\"--content-height\", \"0px\");\n      }\n\n      minorItemWrapper.classList.toggle(\"show\");\n      plusIcon.classList.toggle(\"hidden\");\n      minusIcon.classList.toggle(\"hidden\");\n    });\n  });\n};\n\nconst updateCategory = (category) => {\n  const categoryButtonText = categoryButton.querySelector(\n    \".ls-categoryButton__text\"\n  );\n  if (categoryButtonText) {\n    categoryButtonText.textContent = category;\n  }\n  const categoryButtonTextSp = categoryButtonSp.querySelector(\n    \".ls-categoryButton__text\"\n  );\n  if (categoryButtonTextSp) {\n    categoryButtonTextSp.textContent = category === \"すべて\" ? \"カテゴリ選択\" : category;\n  }\n\n  categoryList.classList.remove(\"show\");\n  categoryListSp.classList.remove(\"show\");\n  categoryListBgSp.classList.remove(\"show\");\n  categoryInput.value = category === \"すべて\" ? \"\" : category;\n\n  const categoryItem = categoryList.querySelectorAll(\".ls-categoryList__item\");\n  categoryItem.forEach((item) => {\n    if (item.textContent === category) {\n      item.classList.add(\"selected\");\n    } else {\n      item.classList.remove(\"selected\");\n    }\n  });\n\n  const categorySpMajorItem = categoryListSp.querySelectorAll(\".ls-categoryListSp__item--major\");\n  categorySpMajorItem.forEach((item) => {\n    const button = item.querySelector(\"button\");\n    if (button.textContent === category) {\n      item.classList.add(\"selected\");\n    } else {\n      item.classList.remove(\"selected\");\n    }\n  });\n\n  const categorySpMinorItem = categoryListSp.querySelectorAll(\".ls-categoryListSp__item--minor\");\n  categorySpMinorItem.forEach((item) => {\n    if (item.textContent === category) {\n      item.classList.add(\"selected\");\n    } else {\n      item.classList.remove(\"selected\");\n    }\n  });\n\n  const categoryButtonIcon = categoryButton.querySelector(\n    \".ls-categoryButton__icon\"\n  );\n  if (categoryButtonIcon) {\n    const plusIcon = categoryButtonIcon.querySelector(\n      \".ls-categoryButton__icon--plus\"\n    );\n    const minusIcon = categoryButtonIcon.querySelector(\n      \".ls-categoryButton__icon--minus\"\n    );\n\n    if (plusIcon && minusIcon) {\n      if (categoryList.classList.contains(\"show\")) {\n        plusIcon.classList.add(\"hidden\");\n        minusIcon.classList.remove(\"hidden\");\n      } else {\n        plusIcon.classList.remove(\"hidden\");\n        minusIcon.classList.add(\"hidden\");\n      }\n    }\n  }\n};\n","document.addEventListener(\"DOMContentLoaded\", function () {\n  toggleStarActivation(\"popularSample01\");\n  toggleStarActivation(\"popularSample02\");\n  toggleStarActivation(\"popularSample03\");\n  toggleStarActivation(\"usefulSample01\");\n  toggleStarActivation(\"usefulSample02\");\n  toggleStarActivation(\"usefulSample03\");\n  toggleStarActivation(\"recommendSample01\");\n  toggleStarActivation(\"recommendSample02\");\n  toggleStarActivation(\"recommendSample03\");\n  toggleStarActivation(\"favoriteSample01\");\n  toggleStarActivation(\"favoriteSample02\");\n  toggleStarActivation(\"favoriteSample03\");\n  toggleStarActivation(\"resultSample01\");\n  toggleStarActivation(\"resultSample02\");\n  toggleStarActivation(\"resultSample03\");\n\n  toggleStarActivationDetail();\n});\n\nconst toggleStarActivation = (contentId) => {\n  const popularItem = document.getElementById(contentId);\n\n  if (popularItem) {\n    const favoriteButton = popularItem.querySelector(\"button\");\n    const graystar = popularItem.querySelector(\".ls-favoriteIcon\");\n    const yellowstar = popularItem.querySelector(\".ls-favoriteIcon--active\");\n\n    favoriteButton.addEventListener(\"click\", function () {\n      graystar.classList.toggle(\"hidden\");\n      yellowstar.classList.toggle(\"hidden\");\n    });\n  }\n};\n\nconst toggleStarActivationDetail = () => {\n  const favoriteButtons = document.querySelectorAll(\".detailFavorite\");\n\n  favoriteButtons.forEach((button) => {\n    const graystar = button.querySelector(\".ls-favoriteIcon\");\n    const yellowstar = button.querySelector(\".ls-favoriteIcon--active\");\n\n    button.addEventListener(\"click\", function () {\n      graystar.classList.toggle(\"hidden\");\n      yellowstar.classList.toggle(\"hidden\");\n    });\n  });\n};\n","document.addEventListener(\"DOMContentLoaded\", function () {\n  const searchForm = document.querySelector(\".ls-searchForm\");\n  if (!searchForm) return;\n\n  const upperRow = searchForm.querySelector(\".ls-searchForm__row\");\n  const lowerRow = searchForm.querySelector(\".ls-searchForm__row--lower\");\n  if (!upperRow || !lowerRow) return;\n\n  let lastScrollTop = 0;\n  let ticking = false;\n\n  function updateSearchForm(scrollTop) {\n    const scrollDown = scrollTop > lastScrollTop;\n    const upperRowHeight = upperRow.offsetHeight;\n    const lowerRowHeight = lowerRow.offsetHeight;\n\n    if (scrollTop > upperRowHeight) {\n      upperRow.style.position = \"fixed\";\n      upperRow.style.top = \"0\";\n      upperRow.style.left = \"0\";\n      upperRow.style.width = \"100%\";\n      upperRow.style.zIndex = \"1000\";\n      searchForm.style.paddingTop = `${upperRowHeight}px`;\n\n      if (scrollDown) {\n        lowerRow.style.transform = `translateY(-${lowerRowHeight}px)`;\n      } else {\n        lowerRow.style.transform = \"translateY(0)\";\n      }\n\n      lowerRow.style.position = \"fixed\";\n      lowerRow.style.top = `${upperRowHeight}px`;\n      lowerRow.style.left = \"0\";\n      lowerRow.style.width = \"100%\";\n      lowerRow.style.zIndex = \"999\";\n    } else {\n      upperRow.style.position = \"static\";\n      upperRow.style.width = \"auto\";\n      searchForm.style.paddingTop = \"0\";\n      lowerRow.style.position = \"static\";\n      lowerRow.style.transform = \"translateY(0)\";\n    }\n\n    lastScrollTop = scrollTop;\n  }\n\n  window.addEventListener(\"scroll\", function (e) {\n    if (!ticking) {\n      window.requestAnimationFrame(function () {\n        updateSearchForm(window.pageYOffset);\n        ticking = false;\n      });\n\n      ticking = true;\n    }\n  });\n});\n","const categoryInput = document.getElementById(\"ls-category\");\nconst heading = document.getElementById(\"ls-resultHeading\");\nconst noResultHeading = document.getElementById(\"ls-noResultHeading\");\n\nfunction getQueryParam(param) {\n  const urlParams = new URLSearchParams(window.location.search);\n  return urlParams.get(param);\n}\n\nfunction updateHeading() {\n  const category = getQueryParam(\"sc[category]\") || \"\";\n  const tag = getQueryParam(\"sc[tag]\") || \"\";\n  const keyword = getQueryParam(\"sc[keyword]\") || \"\";\n\n  const decodedCategory = decodeURIComponent(category);\n  const decodedTag = decodeURIComponent(tag);\n  const decodedKeyword = decodeURIComponent(keyword);\n\n  let headingText = \"\";\n  let noResultHeadingText = \"キーワードの検索結果\";\n  if (decodedCategory) headingText += `${decodedCategory} `;\n  if (decodedTag) headingText += `${decodedTag} `;\n  if (decodedKeyword) {\n    headingText += `${decodedKeyword} `;\n    noResultHeadingText = `${decodedKeyword}の検索結果`;\n  }\n  headingText += \"の検索結果\";\n\n  if (heading) {\n    heading.textContent = headingText.trim();\n  }\n  if (noResultHeading) {\n    noResultHeading.textContent = noResultHeadingText;\n  }\n\n  updateCategoryButtonText(decodedCategory);\n  updateKeywordInput(decodedKeyword);\n}\n\nfunction updateCategoryButtonText(category) {\n  const categoryButton = document.getElementById(\"ls-categoryButton\");\n  const categoryButtonSp = document.getElementById(\"ls-categoryButtonSp\");\n  if (categoryButton) {\n    const categoryText = categoryButton.querySelector(\n      \".ls-categoryButton__text\"\n    );\n    if (categoryText) {\n      categoryText.textContent = category || \"すべて\";\n    }\n    categoryInput.value = category;\n  }\n  if (categoryButtonSp) {\n    const categoryText = categoryButtonSp.querySelector(\n      \".ls-categoryButton__text\"\n    );\n    if (categoryText) {\n      categoryText.textContent = category || \"カテゴリ選択\";\n    }\n    categoryInput.value = category;\n  }\n}\n\nfunction updateKeywordInput(keyword) {\n  const keywordInput = document.getElementById(\"ls-keywords\");\n  const keywordInputSp = document.getElementById(\"ls-keywords-sp\");\n  const keywordHidden = document.getElementById(\"ls-keyword\");\n  if (keywordInput) {\n    keywordInput.value = keyword;\n  }\n  if (keywordInputSp) {\n    keywordInputSp.value = keyword;\n  }\n  if (keywordHidden) {\n    keywordHidden.value = keyword;\n  }\n}\n\n// document.addEventListener(\"DOMContentLoaded\", updateHeading);\n","$(function() {\n  // 並び替え\n  $('.js-search_study_sorting').on('change', function() {\n    const value = $(this).val();\n    const form = $('#search_study_sorting_form');\n    form.find('[name=\"sort_by\"]').val(value);\n    form.submit();\n  });\n\n  // お気に入りアイコンのクリックで記事へのリンクが動作しないようにする\n  $('.js-study_favorite_toggle_icon_form').on('click', function(event) {\n    event.stopPropagation();\n  });\n});\n\n$(function() {\n  $(\"a[href^='https://www.yayoi-kk.co.jp/lp/freenance/'],a[href^='https://www.yayoi-kk.co.jp/lp/invoicecard/']\").on('click', function() {\n    $.ajax({\n      type: \"POST\",\n      url: \"/api/v1/freenance_lp_link\"\n    });\n  });\n});\n","$(function() {\n  // ページロード時\n  $(document).ready(function() {\n    // 実際のフォーム要素からモーダル内の都道府県チェックボックスに反映する\n    $('.chex-pref').each(function() {\n      const inputId = $(this).attr('id');\n      const inputChecked = $(this).prop('checked');\n\n      const $inModalInput = $(`.js-sc-pref-checkbox[data-id='${inputId}']`);\n      if (inputChecked) {\n        $inModalInput.prop('checked', true);\n      } else {\n        $inModalInput.prop('checked', false);\n      }\n    });\n  });\n\n  // 市区町村モーダルの内容を再作成する\n  $(\"body\").on('click', '#reGenerateScCityModalContent', function() {\n    const $cities = $('#cities');\n\n    // 都道府県毎のデータ\n    const $rows = $cities.children('.checkbox-ex__row');\n\n    const $newElements = $('<div>');\n\n    $rows.each(function() {\n      const prefName = $(this).find('.checkbox-ex__heading').find('.checkbox-ex__data-object').text();\n\n      const $areaGroupElement = $('<div>').addClass('sc-modal__main-content__area-group');\n      const $areaTitleElement = $('<div>').addClass('sc-modal__main-content__area-title').text(prefName);\n      $areaGroupElement.append($areaTitleElement);\n\n      $areaContentsElement = $('<div>').addClass('sc-modal__main-content__area-contents');\n\n      const $citySelectWrap = $(this).find('.checkbox-ex__select-group').find('.checkbox-ex__select');\n\n      $citySelectWrap.each(function() {\n        const $input = $(this).find('input');\n        const $label = $(this).find('label');\n\n        const inputId = $input.attr('id');\n        const inputValue = $input.val();\n        const inputChecked = $input.prop('checked');\n\n        const labelText = $label.find('.checkbox-ex__data-object').text();\n\n        $contentsItem = $('<div>').addClass('form-check').addClass('sc-modal__checkbox__wrapper');\n        $cityInputElement = $('<input>').attr('type', 'checkbox').attr('id', `sc_${inputId}`).attr('data-id', inputId).val(inputValue).addClass('form-check-input').addClass('js-sc-city-checkbox');\n        if (inputChecked) {\n          $cityInputElement.prop('checked', true);\n        }\n        $cityLabelElement = $(`<label>`).attr('for', `sc_${inputId}`).text(labelText).addClass('form-check-label');\n\n        $contentsItem.append($cityInputElement).append($cityLabelElement);\n        $areaContentsElement.append($contentsItem);\n      });\n\n      $areaGroupElement.append($areaContentsElement);\n      $newElements.append($areaGroupElement);\n    });\n\n    $('#mainSearchConditionCityModalMainContent').empty().append($newElements.children());\n  });\n\n  // モーダル内のチェックボックスが変更されたら実際のフォーム要素に反映する\n  $(\"body\").on('change', '.js-sc-pref-checkbox, .js-sc-city-checkbox, .js-sc-industry-checkbox, .js-sc-usage-checkbox, .js-sc-other-checkbox', function() {\n    const inModalInputDataId = $(this).attr('data-id');\n    const inModalInputChecked = $(this).prop('checked');\n\n    const $input = $(`#${inModalInputDataId}`);\n    if (inModalInputChecked) {\n      $input.prop('checked', true);\n    } else {\n      $input.prop('checked', false);\n    }\n\n    $input.trigger('change');\n\n    if ($(this).hasClass('js-sc-industry-checkbox') || $(this).hasClass('js-sc-usage-checkbox') || $(this).hasClass('js-sc-other-checkbox')) {\n      refreshDisplayedOthersModalSelectedElementCount();\n    }\n  });\n\n  // 事業形態セレクトが変更されたら実際のフォームに反映する\n  $(\"#mainSearchConditionBusinessTypeSelect\").on('change', function() {\n    const originVal = $(this).val();\n\n    // 事業形態セレクトの表示を変更する\n    if (originVal) {\n      $(this).removeClass('not-selected').removeClass('required-notice');\n    } else {\n      $(this).addClass('not-selected').addClass('required-notice');\n    }\n\n    $('#detail_search_q_anken_business_type_cd').val(originVal);\n    $('#detail_search_q_anken_business_type_cd').trigger('change');\n  });\n\n  // 従業員数セレクトが変更されたら実際のフォームに反映する\n  $(\"#mainSearchConditionEmployeeNumberSelect\").on('change', function() {\n    $('#q_anken_employee_number').val($(this).val());\n    $('#q_anken_employee_number').trigger('change');\n\n    refreshDisplayedOthersModalSelectedElementCount();\n  });\n\n  // 継続年数セレクトが変更されたら実際のフォームに反映する\n  $(\"#mainSearchConditionBusinessPeriodCdSelect\").on('change', function() {\n    $('#q_anken_business_period_cd').val($(this).val());\n    $('#q_anken_business_period_cd').trigger('change');\n\n    refreshDisplayedOthersModalSelectedElementCount();\n  });\n\n  // 資本金額セレクトが変更されたら実際のフォームに反映する\n  $(\"#mainSearchConditionCapitalAmountSelect\").on('change', function() {\n    $('#q_anken_capital_amount').val($(this).val());\n    $('#q_anken_capital_amount').trigger('change');\n\n    refreshDisplayedOthersModalSelectedElementCount();\n  });\n\n  // 希望金額セレクトが変更されたら実際のフォームに反映する\n  $(\"#mainSearchConditionRequiredAmountSelect\").on('change', function() {\n    $('#q_required_amount').val($(this).val());\n    $('#q_required_amount').trigger('change');\n\n    refreshDisplayedOthersModalSelectedElementCount();\n  });\n\n  // フリーワードが変更されたら実際のフォームに反映する\n  $(\"#mainSearchConditionKeyword\").on('change', function() {\n    $('#q_keyword').val($(this).val());\n    $('#q_keyword').trigger('change');\n\n    refreshDisplayedOthersModalSelectedElementCount();\n  });\n\n  // 都道府県や事業形態が変更されたとき、それらの選択状態により、検索ボタンの活性状態を変更する\n  $('#mainSearchConditionPrefButton, #mainSearchConditionBusinessTypeSelect').on('change', function() {\n    $mainSearchConditionSubmitButton = $('#mainSearchConditionSubmitButton');\n    if ($('#mainSearchConditionPrefButton').hasClass('not-selected') || $('#mainSearchConditionBusinessTypeSelect').hasClass('not-selected')) {\n      $mainSearchConditionSubmitButton.prop('disabled', true);\n    } else {\n      $mainSearchConditionSubmitButton.prop('disabled', false);\n    }\n  });\n\n  // 都道府県選択モーダルを閉じたタイミングで、都道府県が選択されていなければ、都道府県選択モーダル表示ボタンに必須エラー表示をおこなう\n  const mainSearchConditionPrefModal = document.getElementById('mainSearchConditionPrefModal');\n  if (mainSearchConditionPrefModal) {\n    mainSearchConditionPrefModal.addEventListener('hidden.bs.modal', event => {\n      const $mainSearchConditionPrefButton = $('#mainSearchConditionPrefButton');\n      if ($mainSearchConditionPrefButton.hasClass('not-selected')) {\n        $mainSearchConditionPrefButton.addClass('required-notice');\n      }\n    });\n  }\n\n  // 詳細条件モーダル内の選択数をカウントして表示する\n  // カウント数表示を更新する\n  function refreshDisplayedOthersModalSelectedElementCount() {\n    const $mainSearchConditionOthersButton = $('#mainSearchConditionOthersButton');\n    const $countTargetElements = $('#mainSearchConditionOthersModal').find('select, input').not('#mainSearchConditionIndustryHyde, #mainSearchConditionUsageHyde');\n    if ($mainSearchConditionOthersButton.length) {\n      let count = 0;\n      if ($countTargetElements.length) {\n        count = $countTargetElements.filter(function() {\n          if ($(this).is('select')) {\n            return $(this).val() !== null && $(this).val() !== '';\n          } else if ($(this).is('input[type=\"checkbox\"]')) {\n            return $(this).prop('checked');\n          } else if ($(this).is('input[type=\"text\"]')) {\n            return $(this).val().trim() !== '';\n          }\n          return false;\n        }).length;\n      }\n\n      if (count >= 1) {\n        $mainSearchConditionOthersButton.text(`条件追加(${count})`);\n        $mainSearchConditionOthersButton.removeClass('not-required-not-selected');\n      } else {\n        $mainSearchConditionOthersButton.text('条件追加');\n        $mainSearchConditionOthersButton.addClass('not-required-not-selected');\n      }\n    }\n  }\n  // ページ読み込み時に実行する\n  refreshDisplayedOthersModalSelectedElementCount();\n});\n\n// ページロード後にstyleにセットされている「transition: none;」を削除\nconst searchResultCardBookmarkTagStateHoverIcons = document.getElementsByClassName('js-search-result-card-bookmark-tag-state-hover-icon');\nwindow.addEventListener('load', () => {\n  for (const searchResultCardBookmarkTagStateHoverIcon of searchResultCardBookmarkTagStateHoverIcons) {\n    searchResultCardBookmarkTagStateHoverIcon.style.removeProperty('transition');\n  }\n});\n","document.addEventListener(\"DOMContentLoaded\", () => {\n  const searchResultCollapsibleSections = document.getElementsByClassName('js-search-result-collapsible-section');\n  setToggleBehavior(searchResultCollapsibleSections);\n\n  const siteHeaderToggles = document.getElementsByClassName('js-site-header-toggle');\n  setToggleBehavior(siteHeaderToggles);\n\n  const siteFooterToggleClassName = 'js-site-footer-toggle';\n  const siteFooterToggles = document.getElementsByClassName(siteFooterToggleClassName);\n  setToggleBehavior(siteFooterToggles);\n\n  function isEnabled(collapsibleSection) {\n    if (collapsibleSection.classList.contains(siteFooterToggleClassName) && window.matchMedia('(min-width: 768px)').matches) {\n      return false;\n    }\n    return true;\n  }\n\n  function setToggleBehavior(collapsibleSections) {\n    if (collapsibleSections) {\n      const animateTiming = {\n        duration: 200,\n        easing: 'linear',\n      };\n\n      for (const collapsibleSection of collapsibleSections) {\n        const summary = collapsibleSection.getElementsByTagName('summary')[0];\n        const content = collapsibleSection.getElementsByTagName('div')[0];\n\n        if (summary && content) {\n          summary.addEventListener('click', (event) => {\n            event.preventDefault();\n            if (isEnabled(collapsibleSection)) {\n              if (collapsibleSection.open) {\n                // 閉じる\n                const closeAnimate = content.animate(\n                  {\n                    height: [content.offsetHeight + 'px', 0],\n                  },\n                  animateTiming\n                );\n                closeAnimate.onfinish = () => {\n                  collapsibleSection.open = false;\n                }\n              } else {\n                // 開く\n                collapsibleSection.open = true;\n                const openAnimate = content.animate(\n                  {\n                    height: [0, content.offsetHeight + 'px'],\n                  },\n                  animateTiming\n                );\n              }\n            }\n          });\n        }\n      }\n    }\n  }\n});\n","const html = document.getElementsByTagName('html')[0];\nconst siteHeader = document.getElementById('siteHeader');\nconst siteHeaderMenuBtn = document.getElementById('siteHeaderMenuBtn');\nconst siteHeaderMenuBtnText = document.getElementById('siteHeaderMenuBtnText');\nconst siteHeaderMenuContent = document.getElementById('siteHeaderMenuContent');\nconst siteHeaderNavBtns = document.getElementsByClassName('js-site-header-nav_btn');\nconst siteHeaderToggles = document.getElementsByClassName('js-site-header-toggle');\nconst siteHeaderMenuBackdrop = document.getElementById('siteHeaderMenuBackdrop');\nconst scrollTop = document.getElementById('scrollTop');\nconst siteDropdownPcContents = document.getElementsByClassName('js-site-dropdown-pc_content');\nconst siteHeaderNavBackdrops = document.getElementsByClassName('js-site-header-nav_backdrop');\n\nif (siteHeader) {\n  // メニューを閉じる\n  function closeMenu() {\n    siteHeaderMenuBtn.setAttribute('aria-expanded', 'false');\n    siteHeaderMenuBtnText.textContent = 'メニューを開く';\n    siteHeaderMenuContent.classList.remove('is-shown');\n    html.classList.remove('is-menu-open');\n    siteHeaderMenuBackdrop.classList.remove('is-shown');\n    if (scrollTop) {\n      scrollTop.removeAttribute('tabindex');\n    }\n  }\n\n  // メニューを開く\n  function openMenu() {\n    siteHeaderMenuBtn.setAttribute('aria-expanded', 'true');\n    siteHeaderMenuBtnText.textContent = 'メニューを閉じる';\n    siteHeaderMenuContent.classList.add('is-shown');\n    html.classList.add('is-menu-open');\n    siteHeaderMenuBackdrop.classList.add('is-shown');\n    if (scrollTop) {\n      scrollTop.setAttribute('tabindex', -1);\n    }\n  }\n\n  // ハンバーガーボタンを押下\n  siteHeaderMenuBtn.addEventListener('click', () => {\n    if (siteHeaderMenuBtn.getAttribute('aria-expanded') === 'true') {\n      // メニューを閉じる\n      closeMenu();\n    } else {\n      // メニューを開く\n      openMenu();\n    }\n  });\n\n  // メニューエリア外の背景を押下\n  siteHeaderMenuBackdrop.addEventListener('click', () => {\n    // メニューを閉じる\n    closeMenu();\n  });\n\n  // ヘッダーの高さをカスタムプロパティにセットする\n  function setCustomProperty() {\n    const headerHeight = siteHeader.offsetHeight;\n    document.documentElement.style.setProperty('--js-acq-height-header', headerHeight + 'px');\n  }\n  window.addEventListener('DOMContentLoaded', setCustomProperty);\n  window.addEventListener('resize', setCustomProperty);\n\n  // メディアクエリによりヘッダーメニューの状態を変化\n  function changedMediaQuery(event) {\n    let toggleOpen;\n    if (event.matches) {\n      // PC\n      toggleOpen = true;\n    } else {\n      // SP\n      toggleOpen = false;\n    }\n    for (const toggle of siteHeaderToggles) {\n      toggle.open = toggleOpen;\n    }\n    closeMenu();\n  }\n  const mediaQuery = window.matchMedia('(min-width: 992px)');\n  mediaQuery.addEventListener('change', changedMediaQuery);\n  changedMediaQuery(mediaQuery);\n\n  // ヘッダーメニューのマウスオーバー動作\n  for (const btn of siteHeaderNavBtns) {\n    const headerNavContent = document.getElementById(btn.getAttribute('aria-controls'));\n    let siteHeaderNavBackdrop;\n    if (headerNavContent.parentElement) {\n      siteHeaderNavBackdrop = headerNavContent.parentElement.getElementsByClassName('js-site-header-nav_backdrop')[0];\n    }\n    const handleShow = () => {\n      if (mediaQuery.matches) {\n        btn.setAttribute('aria-expanded', 'true');\n        headerNavContent.classList.add('is-shown');\n        if (siteHeaderNavBackdrop) {\n          siteHeaderNavBackdrop.classList.add('is-shown');\n        }\n        siteHeaderMenuBackdrop.classList.add('is-shown');\n        if (scrollTop) {\n          scrollTop.setAttribute('tabindex', -1);\n        }\n      }\n    }\n    const handleHide = () => {\n      if (mediaQuery.matches) {\n        btn.setAttribute('aria-expanded', 'false');\n        headerNavContent.classList.remove('is-shown');\n        if (siteHeaderNavBackdrop) {\n          siteHeaderNavBackdrop.classList.remove('is-shown');\n        }\n        if (scrollTop) {\n          scrollTop.removeAttribute('tabindex');\n        }\n      }\n    }\n    let timeoutID;\n    btn.addEventListener('mouseenter', () => {\n      if (timeoutID) {\n        clearTimeout(timeoutID);\n      }\n      timeoutID = setTimeout(handleShow, 200);\n    });\n    btn.addEventListener('mouseleave', () => {\n      if (timeoutID) {\n        clearTimeout(timeoutID);\n      }\n      timeoutID = setTimeout(handleHide, 200);\n    });\n    headerNavContent.addEventListener('mouseenter', () => {\n      if (timeoutID) {\n        clearTimeout(timeoutID);\n      }\n    });\n    headerNavContent.addEventListener('mouseleave', () => {\n      if (timeoutID) {\n        clearTimeout(timeoutID);\n      }\n      timeoutID = setTimeout(handleHide, 200);\n    });\n  }\n\n  // ページロード後にstyleにセットされている「transition: none;」を削除\n  window.addEventListener('load', () => {\n    for (const siteDropdownPcContent of siteDropdownPcContents) {\n      siteDropdownPcContent.style.removeProperty('transition');\n    }\n    for (const siteHeaderNavBackdrop of siteHeaderNavBackdrops) {\n      siteHeaderNavBackdrop.style.removeProperty('transition');\n    }\n    siteHeaderMenuBackdrop.style.removeProperty('transition');\n  });\n}\n\n// モーダルを開いたときのガタつきなどへの対応\nconst modals = document.getElementsByClassName('modal');\nfor (const modal of modals) {\n  modal.addEventListener('show.bs.modal', () => {\n    html.classList.add('is-modal-open');\n  });\n  modal.addEventListener('hidden.bs.modal', () => {\n    html.classList.remove('is-modal-open');\n    // モーダルを閉じたときに勝手にスクロールされる事象への対応\n    document.documentElement.style.setProperty('scroll-padding-top', '0px');\n    setTimeout(() => {\n      document.documentElement.style.removeProperty('scroll-padding-top');\n    }, 50);\n  });\n}\n","const siteFooterToggles = document.getElementsByClassName('js-site-footer-toggle');\n\nif (siteFooterToggles) {\n  // メディアクエリによりフッターメニューの状態を変化\n  function changedMediaQuery(event) {\n    let isPc;\n    if (event.matches) {\n      // PC\n      isPc = true;\n    } else {\n      // SP\n      isPc = false;\n    }\n    for (const toggle of siteFooterToggles) {\n      toggle.open = isPc;\n      const summary = toggle.getElementsByTagName('summary')[0];\n      if (isPc === true) {\n        summary.setAttribute('tabindex', -1);\n      } else {\n        summary.removeAttribute('tabindex');\n      }\n    }\n  }\n  const mediaQuery = window.matchMedia('(min-width: 768px)');\n  mediaQuery.addEventListener('change', changedMediaQuery);\n  changedMediaQuery(mediaQuery);\n}\n"],"sourceRoot":""}