{"version":3,"file":"application.js","mappings":"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5C,EAEOP,CACT,GAEA9T,EAAGM,OAAO,qBAAqB,GAE5B,WA80BD,MA70BiB,CACf,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,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","sources":["webpack://pet-aid/./app/javascript/initializers/availability_scheduler.js","webpack://pet-aid/./app/javascript/initializers/home_blocks_form_setup.js","webpack://pet-aid/./app/javascript/initializers/medical_record_form_setup.js","webpack://pet-aid/./app/javascript/initializers/meeting_form_setup.js","webpack://pet-aid/./app/javascript/initializers/reminder_review_modal_setup.js","webpack://pet-aid/./app/javascript/initializers/reminder_schedule_form_setup.js","webpack://pet-aid/./app/javascript/initializers/weekly_availability.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/adapters.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/logger.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/connection_monitor.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/internal.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/connection.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/subscription.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/subscription_guarantor.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/subscriptions.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/consumer.js","webpack://pet-aid/./node_modules/@rails/actioncable/src/index.js","webpack://pet-aid/./node_modules/jquery.easing/jquery.easing.js","webpack://pet-aid/./node_modules/select2/dist/js/select2.js","webpack://pet-aid/./node_modules/jquery/dist/wrappers/jquery.bundler-require-wrapper.js","webpack://pet-aid/./node_modules/jquery/dist-module/jquery.module.js","webpack://pet-aid/webpack/bootstrap","webpack://pet-aid/webpack/runtime/define property getters","webpack://pet-aid/webpack/runtime/hasOwnProperty shorthand","webpack://pet-aid/webpack/runtime/make namespace object","webpack://pet-aid/./app/javascript/jquery_setup.js","webpack://pet-aid/./node_modules/@rails/ujs/app/assets/javascripts/rails-ujs.esm.js","webpack://pet-aid/./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack://pet-aid/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","webpack://pet-aid/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js","webpack://pet-aid/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js","webpack://pet-aid/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js","webpack://pet-aid/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js","webpack://pet-aid/./app/javascript/sb-admin-2.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/enums.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/popper.js","webpack://pet-aid/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pet-aid/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pet-aid/./app/javascript/initializers/select2_setup.js","webpack://pet-aid/./app/javascript/initializers/phone_input_setup.js","webpack://pet-aid/./app/javascript/application.js"],"sourcesContent":["// Availability Scheduler for Meeting Form\n// Loads available time slots from API with week navigation and time period grouping\n\nconst initAvailabilityScheduler = () => {\n const specialistSelect = document.getElementById('meeting_specialist_id');\n const serviceSelect = document.getElementById('meeting_service_id');\n const schedulerContainer = document.getElementById('availability-scheduler-container');\n const startTimeFallback = document.getElementById('start-time-fallback');\n const scheduler = document.getElementById('availability-scheduler');\n const hiddenStartTime = document.getElementById('meeting_start_time_hidden');\n const fallbackStartTime = document.getElementById('meeting_start_time_fallback');\n\n if (!specialistSelect || !schedulerContainer || !scheduler) return;\n\n // UI Elements\n const prevBtn = document.getElementById('scheduler-prev');\n const nextBtn = document.getElementById('scheduler-next');\n const navLabel = document.getElementById('scheduler-nav-label');\n const datePicker = document.getElementById('scheduler-date-picker');\n const calendarEl = document.getElementById('scheduler-calendar');\n const calendarHeader = document.getElementById('scheduler-calendar-header');\n const calendarGrid = document.getElementById('scheduler-calendar-grid');\n const viewWeekBtn = document.getElementById('scheduler-view-week');\n const viewMonthBtn = document.getElementById('scheduler-view-month');\n const durationSpan = document.getElementById('scheduler-duration');\n const timezoneSpan = document.getElementById('scheduler-timezone');\n const loadingEl = document.getElementById('scheduler-loading');\n const slotsContainer = document.getElementById('scheduler-slots');\n const emptyEl = document.getElementById('scheduler-empty');\n const noSchedulesEl = document.getElementById('scheduler-no-schedules');\n const metaEl = document.getElementById('scheduler-meta');\n const changeSpecialistBtn = document.getElementById('scheduler-change-specialist');\n const findNextBtn = document.getElementById('scheduler-find-next');\n const confirmationEl = document.getElementById('scheduler-confirmation');\n const confirmationValue = document.getElementById('scheduler-confirmation-value');\n const clearSelectionBtn = document.getElementById('scheduler-clear-selection');\n const conflictEl = document.getElementById('scheduler-conflict');\n const conflictExisting = document.getElementById('scheduler-conflict-existing');\n const conflictDismissBtn = document.getElementById('scheduler-conflict-dismiss');\n const patientSelect = document.getElementById('meeting_patient_id');\n\n const i18n = window.schedulerI18n || {};\n const specialistsMetadata = window.specialistsMetadata || [];\n const servicesMetadata = window.servicesMetadata || [];\n const patientMeetings = window.patientMeetings || {};\n const currentMeetingId = window.currentMeetingId || '';\n\n // State\n let currentView = 'week'; // 'week' or 'month'\n let currentWeekStart = getWeekStart(new Date());\n let currentMonth = new Date();\n let selectedDate = null;\n let selectedSlot = null;\n let availableDates = [];\n let slotsCountByDate = {};\n let slotsByDate = {};\n let monthlyAvailableDates = [];\n let monthlySlotsCountByDate = {};\n let metadata = {};\n\n // Utility Functions\n function getWeekStart(date) {\n const d = new Date(date);\n const day = d.getDay();\n const diff = d.getDate() - day;\n return new Date(d.setDate(diff));\n }\n\n function formatDateISO(date) {\n return date.toISOString().split('T')[0];\n }\n\n function formatDateDisplay(date) {\n const months = i18n.months || ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n return `${months[date.getMonth()]} ${date.getDate()}`;\n }\n\n function getDayName(date) {\n const days = [\n i18n.days?.sun || 'Sun',\n i18n.days?.mon || 'Mon',\n i18n.days?.tue || 'Tue',\n i18n.days?.wed || 'Wed',\n i18n.days?.thu || 'Thu',\n i18n.days?.fri || 'Fri',\n i18n.days?.sat || 'Sat'\n ];\n return days[date.getDay()];\n }\n\n function isToday(date) {\n const today = new Date();\n return formatDateISO(date) === formatDateISO(today);\n }\n\n function isPast(date) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return date < today;\n }\n\n function getMonthStart(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n }\n\n function getMonthEnd(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n }\n\n function getMonthName(date) {\n const months = i18n.months || ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n return months[date.getMonth()];\n }\n\n function getSpecialistMetadata(specialistId) {\n return specialistsMetadata.find(s => s.id === specialistId) || {};\n }\n\n function getServiceMetadata(serviceId) {\n return servicesMetadata.find(s => s.id === serviceId) || {};\n }\n\n // UI State Management\n function showSchedulerContainer() {\n schedulerContainer.style.display = 'block';\n startTimeFallback.style.display = 'none';\n if (fallbackStartTime) fallbackStartTime.name = '';\n }\n\n function showFallbackContainer() {\n schedulerContainer.style.display = 'none';\n startTimeFallback.style.display = 'block';\n if (fallbackStartTime) fallbackStartTime.name = 'meeting[start_time]';\n }\n\n function hideBothContainers() {\n schedulerContainer.style.display = 'none';\n startTimeFallback.style.display = 'none';\n if (fallbackStartTime) fallbackStartTime.name = '';\n }\n\n function showLoading() {\n loadingEl.style.display = 'block';\n slotsContainer.style.display = 'none';\n emptyEl.style.display = 'none';\n noSchedulesEl.style.display = 'none';\n metaEl.style.display = 'none';\n }\n\n function hideLoading() {\n loadingEl.style.display = 'none';\n }\n\n function showSlots() {\n hideLoading();\n slotsContainer.style.display = 'block';\n emptyEl.style.display = 'none';\n noSchedulesEl.style.display = 'none';\n metaEl.style.display = 'flex';\n }\n\n function showEmpty() {\n hideLoading();\n slotsContainer.style.display = 'none';\n emptyEl.style.display = 'flex';\n noSchedulesEl.style.display = 'none';\n metaEl.style.display = 'none';\n }\n\n function showNoSchedules() {\n hideLoading();\n slotsContainer.style.display = 'none';\n emptyEl.style.display = 'none';\n noSchedulesEl.style.display = 'flex';\n metaEl.style.display = 'none';\n }\n\n // Render Functions\n function renderNavLabel() {\n if (currentView === 'week') {\n const endDate = new Date(currentWeekStart);\n endDate.setDate(endDate.getDate() + 6);\n const label = `${i18n.weekOf || 'Week of'} ${formatDateDisplay(currentWeekStart)} - ${formatDateDisplay(endDate)}`;\n navLabel.textContent = label;\n } else {\n const label = `${getMonthName(currentMonth)} ${currentMonth.getFullYear()}`;\n navLabel.textContent = label;\n }\n }\n\n function renderCalendarHeader() {\n const days = [\n i18n.days?.sun || 'Sun',\n i18n.days?.mon || 'Mon',\n i18n.days?.tue || 'Tue',\n i18n.days?.wed || 'Wed',\n i18n.days?.thu || 'Thu',\n i18n.days?.fri || 'Fri',\n i18n.days?.sat || 'Sat'\n ];\n\n calendarHeader.innerHTML = days.map(day =>\n `
${day}
`\n ).join('');\n }\n\n function renderMonthlyCalendar() {\n const monthStart = getMonthStart(currentMonth);\n const monthEnd = getMonthEnd(currentMonth);\n const startDay = monthStart.getDay(); // Day of week month starts on\n const daysInMonth = monthEnd.getDate();\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n let html = '';\n\n // Empty cells before first day\n for (let i = 0; i < startDay; i++) {\n html += '
';\n }\n\n // Days of the month\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(currentMonth.getFullYear(), currentMonth.getMonth(), day);\n const dateStr = formatDateISO(date);\n const isPastDate = date < today;\n const isTodayDate = formatDateISO(date) === formatDateISO(today);\n const isAvailable = monthlyAvailableDates.includes(dateStr);\n const isSelected = selectedDate === dateStr;\n const slotsCount = monthlySlotsCountByDate[dateStr] || 0;\n\n let classes = 'scheduler__calendar-cell';\n if (isPastDate) classes += ' scheduler__calendar-cell--past';\n if (isTodayDate) classes += ' scheduler__calendar-cell--today';\n if (isAvailable && !isPastDate) classes += ' scheduler__calendar-cell--available';\n if (isSelected) classes += ' scheduler__calendar-cell--selected';\n\n const slotsLabel = slotsCount === 1 ? (i18n.slots?.one || 'slot') : (i18n.slots?.other || 'slots');\n\n html += `\n
\n ${day}\n ${isAvailable && !isPastDate ? `${slotsCount}` : ''}\n
\n `;\n }\n\n // Empty cells after last day (to complete the grid)\n const totalCells = startDay + daysInMonth;\n const remainingCells = (7 - (totalCells % 7)) % 7;\n for (let i = 0; i < remainingCells; i++) {\n html += '
';\n }\n\n calendarGrid.innerHTML = html;\n\n // Attach click handlers\n calendarGrid.querySelectorAll('.scheduler__calendar-cell--available:not(.scheduler__calendar-cell--past)').forEach(cell => {\n cell.addEventListener('click', () => handleCalendarDateClick(cell.dataset.date));\n cell.addEventListener('keydown', (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleCalendarDateClick(cell.dataset.date);\n }\n });\n });\n }\n\n function handleCalendarDateClick(dateStr) {\n // When clicking a date in monthly view, switch to week view for that date\n const date = new Date(dateStr + 'T00:00:00');\n currentWeekStart = getWeekStart(date);\n currentView = 'week';\n selectedDate = dateStr;\n updateViewToggle();\n switchToWeekView();\n fetchSlots();\n }\n\n function updateViewToggle() {\n if (viewWeekBtn && viewMonthBtn) {\n viewWeekBtn.classList.toggle('scheduler__view-btn--active', currentView === 'week');\n viewMonthBtn.classList.toggle('scheduler__view-btn--active', currentView === 'month');\n }\n }\n\n function switchToWeekView() {\n if (datePicker) datePicker.style.display = 'flex';\n if (calendarEl) calendarEl.style.display = 'none';\n if (slotsContainer) slotsContainer.style.display = 'block';\n renderNavLabel();\n }\n\n function switchToMonthView() {\n if (datePicker) datePicker.style.display = 'none';\n if (calendarEl) calendarEl.style.display = 'block';\n if (slotsContainer) slotsContainer.style.display = 'none';\n emptyEl.style.display = 'none';\n renderCalendarHeader();\n renderNavLabel();\n fetchMonthSlots();\n }\n\n function renderDatePicker() {\n let html = '';\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n for (let i = 0; i < 7; i++) {\n const date = new Date(currentWeekStart);\n date.setDate(date.getDate() + i);\n const dateStr = formatDateISO(date);\n const isAvailable = availableDates.includes(dateStr);\n const isPastDate = isPast(date);\n const isSelected = selectedDate === dateStr;\n const isTodayDate = isToday(date);\n\n let classes = 'scheduler__date';\n if (isAvailable && !isPastDate) classes += ' scheduler__date--available';\n if (isPastDate) classes += ' scheduler__date--past';\n if (isSelected) classes += ' scheduler__date--selected';\n if (isTodayDate) classes += ' scheduler__date--today';\n\n const disabled = isPastDate || !isAvailable;\n const slotsCount = slotsCountByDate[dateStr] || 0;\n const slotsLabel = slotsCount === 1 ? (i18n.slots?.one || 'slot') : (i18n.slots?.other || 'slots');\n\n html += `\n \n `;\n }\n\n datePicker.innerHTML = html;\n\n // Attach click handlers\n datePicker.querySelectorAll('.scheduler__date:not([disabled])').forEach(btn => {\n btn.addEventListener('click', () => selectDate(btn.dataset.date));\n });\n }\n\n function renderSlots() {\n const dateSlots = slotsByDate[selectedDate];\n\n if (!dateSlots) {\n showEmpty();\n return;\n }\n\n const periods = ['morning', 'afternoon', 'evening'];\n let hasAnySlots = false;\n\n periods.forEach(period => {\n const periodSlots = dateSlots[period] || [];\n const container = document.getElementById(`slots-${period}`);\n const periodEl = container.closest('.scheduler__period');\n\n if (periodSlots.length === 0) {\n periodEl.style.display = 'none';\n container.innerHTML = '';\n return;\n }\n\n hasAnySlots = true;\n periodEl.style.display = 'block';\n\n container.innerHTML = periodSlots.map(slot => {\n const isSelected = selectedSlot === slot.datetime;\n return `\n \n `;\n }).join('');\n\n // Attach click handlers\n container.querySelectorAll('.scheduler__slot').forEach(btn => {\n btn.addEventListener('click', () => selectSlot(btn.dataset.datetime));\n });\n });\n\n if (hasAnySlots) {\n showSlots();\n } else {\n showEmpty();\n }\n }\n\n function updateMeta() {\n if (metadata.service_duration) {\n const durationText = `${i18n.duration || 'Duration:'} ${metadata.service_duration} ${i18n.minutes || 'min'}`;\n durationSpan.querySelector('span').textContent = durationText;\n durationSpan.style.display = 'inline-flex';\n } else {\n durationSpan.style.display = 'none';\n }\n\n if (metadata.timezone) {\n const tzText = `${metadata.timezone} (${metadata.timezone_offset})`;\n timezoneSpan.querySelector('span').textContent = tzText;\n timezoneSpan.style.display = 'inline-flex';\n } else {\n timezoneSpan.style.display = 'none';\n }\n }\n\n function updateNavigation() {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n if (currentView === 'week') {\n const todayWeekStart = getWeekStart(new Date());\n if (prevBtn) prevBtn.disabled = currentWeekStart <= todayWeekStart;\n } else {\n const todayMonthStart = getMonthStart(new Date());\n if (prevBtn) prevBtn.disabled = currentMonth.getFullYear() === todayMonthStart.getFullYear() &&\n currentMonth.getMonth() === todayMonthStart.getMonth();\n }\n }\n\n // Selection Functions\n function selectDate(dateStr) {\n selectedDate = dateStr;\n selectedSlot = null;\n hiddenStartTime.value = '';\n\n // Update date picker UI\n datePicker.querySelectorAll('.scheduler__date').forEach(btn => {\n btn.classList.toggle('scheduler__date--selected', btn.dataset.date === dateStr);\n });\n\n renderSlots();\n }\n\n function selectSlot(datetime) {\n selectedSlot = datetime;\n hiddenStartTime.value = datetime;\n\n // Update slots UI\n document.querySelectorAll('.scheduler__slot').forEach(btn => {\n btn.classList.toggle('scheduler__slot--selected', btn.dataset.datetime === datetime);\n });\n\n // Show confirmation banner\n showConfirmation(datetime);\n\n // Check for conflicts with patient's existing appointments\n checkForConflicts(datetime);\n }\n\n function showConfirmation(datetime) {\n if (!confirmationEl || !confirmationValue) return;\n\n const date = new Date(datetime);\n const formattedDate = formatConfirmationDate(date);\n const formattedTime = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n\n confirmationValue.textContent = `${formattedDate} - ${formattedTime}`;\n confirmationEl.style.display = 'flex';\n confirmationEl.classList.add('scheduler__confirmation--appear');\n\n // Remove animation class after animation completes\n setTimeout(() => {\n confirmationEl.classList.remove('scheduler__confirmation--appear');\n }, 300);\n }\n\n function formatConfirmationDate(date) {\n const months = i18n.months || ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n const days = [\n i18n.days?.sun || 'Sun',\n i18n.days?.mon || 'Mon',\n i18n.days?.tue || 'Tue',\n i18n.days?.wed || 'Wed',\n i18n.days?.thu || 'Thu',\n i18n.days?.fri || 'Fri',\n i18n.days?.sat || 'Sat'\n ];\n return `${days[date.getDay()]}, ${months[date.getMonth()]} ${date.getDate()}`;\n }\n\n function hideConfirmation() {\n if (confirmationEl) {\n confirmationEl.style.display = 'none';\n }\n }\n\n function clearSelection() {\n selectedSlot = null;\n hiddenStartTime.value = '';\n\n // Update slots UI\n document.querySelectorAll('.scheduler__slot').forEach(btn => {\n btn.classList.remove('scheduler__slot--selected');\n });\n\n hideConfirmation();\n hideConflict();\n }\n\n // Conflict Detection Functions\n function checkForConflicts(datetime) {\n if (!patientSelect) {\n hideConflict();\n return;\n }\n\n const patientId = patientSelect.value;\n if (!patientId) {\n hideConflict();\n return;\n }\n\n const meetings = patientMeetings[patientId] || [];\n if (meetings.length === 0) {\n hideConflict();\n return;\n }\n\n const selectedDateTime = new Date(datetime);\n const selectedDate = formatDateISO(selectedDateTime);\n\n // Find meetings on the same day (excluding current meeting if editing)\n const conflictingMeetings = meetings.filter(meeting => {\n // Skip current meeting when editing\n if (currentMeetingId && meeting.id === currentMeetingId) {\n return false;\n }\n\n const meetingDate = new Date(meeting.start_time);\n return formatDateISO(meetingDate) === selectedDate;\n });\n\n if (conflictingMeetings.length > 0) {\n showConflict(conflictingMeetings);\n } else {\n hideConflict();\n }\n }\n\n function showConflict(meetings) {\n if (!conflictEl || !conflictExisting) return;\n\n // Build the list of conflicting appointments\n const existingHtml = meetings.map(meeting => {\n const time = new Date(meeting.start_time).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n const service = meeting.service_name || 'Appointment';\n return `\n
\n \n ${service} - ${time}\n
\n `;\n }).join('');\n\n conflictExisting.innerHTML = existingHtml;\n conflictEl.style.display = 'flex';\n conflictEl.classList.add('scheduler__conflict--appear');\n\n setTimeout(() => {\n conflictEl.classList.remove('scheduler__conflict--appear');\n }, 300);\n }\n\n function hideConflict() {\n if (conflictEl) {\n conflictEl.style.display = 'none';\n }\n }\n\n // Data Fetching\n async function fetchSlots() {\n const specialistId = specialistSelect.value;\n const serviceId = serviceSelect?.value;\n\n if (!specialistId || !serviceId) return;\n\n const specialist = getSpecialistMetadata(specialistId);\n if (!specialist.has_schedules) {\n showNoSchedules();\n renderDatePicker();\n return;\n }\n\n showLoading();\n\n const startDate = formatDateISO(currentWeekStart);\n const endDate = new Date(currentWeekStart);\n endDate.setDate(endDate.getDate() + 6);\n const endDateStr = formatDateISO(endDate);\n\n try {\n const url = `/api/v1/specialists/${specialistId}/available_slots?service_id=${serviceId}&start_date=${startDate}&end_date=${endDateStr}&grouped=true`;\n const response = await fetch(url);\n\n if (!response.ok) {\n showEmpty();\n renderDatePicker();\n return;\n }\n\n const data = await response.json();\n slotsByDate = data.slots || {};\n availableDates = data.available_dates || [];\n slotsCountByDate = data.slots_count_by_date || {};\n metadata = data.metadata || {};\n\n updateMeta();\n renderDatePicker();\n\n // Auto-select first available date\n if (!selectedDate || !availableDates.includes(selectedDate)) {\n if (data.first_available_date && availableDates.includes(data.first_available_date)) {\n selectDate(data.first_available_date);\n } else if (availableDates.length > 0) {\n selectDate(availableDates[0]);\n } else {\n showEmpty();\n }\n } else {\n renderSlots();\n }\n } catch (error) {\n console.error('Error fetching slots:', error);\n showEmpty();\n renderDatePicker();\n }\n }\n\n async function fetchMonthSlots() {\n const specialistId = specialistSelect.value;\n const serviceId = serviceSelect?.value;\n\n if (!specialistId || !serviceId) return;\n\n const specialist = getSpecialistMetadata(specialistId);\n if (!specialist.has_schedules) {\n showNoSchedules();\n renderMonthlyCalendar();\n return;\n }\n\n showLoading();\n\n const startDate = formatDateISO(getMonthStart(currentMonth));\n const endDate = formatDateISO(getMonthEnd(currentMonth));\n\n try {\n const url = `/api/v1/specialists/${specialistId}/available_slots?service_id=${serviceId}&start_date=${startDate}&end_date=${endDate}&grouped=true`;\n const response = await fetch(url);\n\n if (!response.ok) {\n monthlyAvailableDates = [];\n monthlySlotsCountByDate = {};\n hideLoading();\n renderMonthlyCalendar();\n return;\n }\n\n const data = await response.json();\n monthlyAvailableDates = data.available_dates || [];\n monthlySlotsCountByDate = data.slots_count_by_date || {};\n metadata = data.metadata || {};\n\n hideLoading();\n updateMeta();\n metaEl.style.display = 'flex';\n renderMonthlyCalendar();\n } catch (error) {\n console.error('Error fetching month slots:', error);\n monthlyAvailableDates = [];\n monthlySlotsCountByDate = {};\n hideLoading();\n renderMonthlyCalendar();\n }\n }\n\n // Event Handlers\n function handleSpecialistChange() {\n const specialistId = specialistSelect.value;\n\n if (!specialistId) {\n // No specialist selected - hide both containers\n hideBothContainers();\n return;\n }\n\n const specialist = getSpecialistMetadata(specialistId);\n\n if (specialist.has_schedules) {\n showSchedulerContainer();\n // Reset state when specialist changes\n currentView = 'week';\n updateViewToggle();\n selectedDate = null;\n selectedSlot = null;\n hiddenStartTime.value = '';\n availableDates = [];\n slotsCountByDate = {};\n slotsByDate = {};\n monthlyAvailableDates = [];\n monthlySlotsCountByDate = {};\n currentWeekStart = getWeekStart(new Date());\n currentMonth = new Date();\n hideConfirmation();\n switchToWeekView();\n updateNavigation();\n renderNavLabel();\n fetchSlots();\n } else {\n // Specialist has no schedules - show fallback datetime picker\n hideConfirmation();\n showFallbackContainer();\n }\n }\n\n function handleServiceChange() {\n if (specialistSelect.value && schedulerContainer.style.display !== 'none') {\n // Reset selection when service changes\n selectedSlot = null;\n hiddenStartTime.value = '';\n hideConfirmation();\n if (currentView === 'week') {\n fetchSlots();\n } else {\n fetchMonthSlots();\n }\n }\n }\n\n function handlePrev() {\n selectedDate = null;\n selectedSlot = null;\n hiddenStartTime.value = '';\n hideConfirmation();\n\n if (currentView === 'week') {\n currentWeekStart.setDate(currentWeekStart.getDate() - 7);\n updateNavigation();\n renderNavLabel();\n fetchSlots();\n } else {\n currentMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1);\n updateNavigation();\n renderNavLabel();\n fetchMonthSlots();\n }\n }\n\n function handleNext() {\n selectedDate = null;\n selectedSlot = null;\n hiddenStartTime.value = '';\n hideConfirmation();\n\n if (currentView === 'week') {\n currentWeekStart.setDate(currentWeekStart.getDate() + 7);\n updateNavigation();\n renderNavLabel();\n fetchSlots();\n } else {\n currentMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1);\n updateNavigation();\n renderNavLabel();\n fetchMonthSlots();\n }\n }\n\n function handleViewWeek() {\n if (currentView === 'week') return;\n currentView = 'week';\n updateViewToggle();\n switchToWeekView();\n updateNavigation();\n fetchSlots();\n }\n\n function handleViewMonth() {\n if (currentView === 'month') return;\n currentView = 'month';\n // Set current month based on currently selected date or current week\n if (selectedDate) {\n const date = new Date(selectedDate + 'T00:00:00');\n currentMonth = new Date(date.getFullYear(), date.getMonth(), 1);\n } else {\n currentMonth = new Date(currentWeekStart.getFullYear(), currentWeekStart.getMonth(), 1);\n }\n updateViewToggle();\n switchToMonthView();\n updateNavigation();\n }\n\n function handleChangeSpecialist() {\n specialistSelect.focus();\n specialistSelect.click();\n }\n\n async function handleFindNextAvailable() {\n const specialistId = specialistSelect.value;\n const serviceId = serviceSelect?.value;\n\n if (!specialistId || !serviceId) return;\n\n // Update button state\n if (findNextBtn) {\n findNextBtn.disabled = true;\n findNextBtn.innerHTML = ` ${i18n.finding || 'Searching...'}`;\n }\n\n // Search up to 8 weeks in the future\n const maxWeeks = 8;\n let searchWeekStart = new Date(currentWeekStart);\n searchWeekStart.setDate(searchWeekStart.getDate() + 7); // Start from next week\n\n for (let week = 0; week < maxWeeks; week++) {\n const startDate = formatDateISO(searchWeekStart);\n const endDate = new Date(searchWeekStart);\n endDate.setDate(endDate.getDate() + 6);\n const endDateStr = formatDateISO(endDate);\n\n try {\n const url = `/api/v1/specialists/${specialistId}/available_slots?service_id=${serviceId}&start_date=${startDate}&end_date=${endDateStr}&grouped=true`;\n const response = await fetch(url);\n\n if (response.ok) {\n const data = await response.json();\n\n if (data.available_dates && data.available_dates.length > 0) {\n // Found availability! Jump to this week\n currentWeekStart = new Date(searchWeekStart);\n slotsByDate = data.slots || {};\n availableDates = data.available_dates || [];\n slotsCountByDate = data.slots_count_by_date || {};\n metadata = data.metadata || {};\n\n updateNavigation();\n renderNavLabel();\n updateMeta();\n renderDatePicker();\n\n // Select the first available date\n selectDate(data.first_available_date || data.available_dates[0]);\n\n // Reset button\n resetFindNextButton();\n return;\n }\n }\n } catch (error) {\n console.error('Error searching for next available:', error);\n }\n\n // Move to next week\n searchWeekStart.setDate(searchWeekStart.getDate() + 7);\n }\n\n // No availability found in the next 8 weeks\n resetFindNextButton();\n alert(i18n.noAvailabilityFound || 'No availability found in the next 8 weeks. Please try a different specialist.');\n }\n\n function resetFindNextButton() {\n if (findNextBtn) {\n findNextBtn.disabled = false;\n findNextBtn.innerHTML = ` ${i18n.findNext || 'Find Next Available'}`;\n }\n }\n\n // Attach Event Listeners\n specialistSelect.addEventListener('change', handleSpecialistChange);\n\n if (serviceSelect) {\n serviceSelect.addEventListener('change', handleServiceChange);\n }\n\n if (prevBtn) {\n prevBtn.addEventListener('click', handlePrev);\n }\n\n if (nextBtn) {\n nextBtn.addEventListener('click', handleNext);\n }\n\n if (viewWeekBtn) {\n viewWeekBtn.addEventListener('click', handleViewWeek);\n }\n\n if (viewMonthBtn) {\n viewMonthBtn.addEventListener('click', handleViewMonth);\n }\n\n if (changeSpecialistBtn) {\n changeSpecialistBtn.addEventListener('click', handleChangeSpecialist);\n }\n\n if (findNextBtn) {\n findNextBtn.addEventListener('click', handleFindNextAvailable);\n }\n\n if (clearSelectionBtn) {\n clearSelectionBtn.addEventListener('click', clearSelection);\n }\n\n if (conflictDismissBtn) {\n conflictDismissBtn.addEventListener('click', hideConflict);\n }\n\n if (patientSelect) {\n patientSelect.addEventListener('change', () => {\n // Re-check conflicts when patient changes\n if (selectedSlot) {\n checkForConflicts(selectedSlot);\n }\n });\n }\n\n // Initialize\n function initialize() {\n const specialistId = specialistSelect.value;\n\n if (specialistId) {\n const specialist = getSpecialistMetadata(specialistId);\n\n if (specialist.has_schedules) {\n showSchedulerContainer();\n\n // If editing an existing meeting, pre-select the current time\n if (window.currentStartTime) {\n const startTime = new Date(window.currentStartTime);\n currentWeekStart = getWeekStart(startTime);\n selectedDate = formatDateISO(startTime);\n selectedSlot = window.currentStartTime;\n hiddenStartTime.value = window.currentStartTime;\n showConfirmation(window.currentStartTime);\n }\n\n updateViewToggle();\n switchToWeekView();\n updateNavigation();\n renderNavLabel();\n fetchSlots();\n } else {\n // Specialist has no schedules - show fallback\n showFallbackContainer();\n }\n } else {\n // No specialist selected - hide both containers\n hideBothContainers();\n }\n }\n\n initialize();\n};\n\n// Initialize on both DOMContentLoaded and Turbo navigation\ndocument.addEventListener('DOMContentLoaded', initAvailabilityScheduler);\ndocument.addEventListener('turbo:load', initAvailabilityScheduler);\n","// Home page blocks builder - add / remove / reorder blocks in the clinic settings form.\ndocument.addEventListener(\"turbo:load\", () => {\n const container = document.querySelector(\"[data-blocks-container]\");\n if (!container) return;\n\n // Keep the hidden position fields in sync with the DOM order of visible rows.\n const renumberPositions = () => {\n let position = 0;\n container.querySelectorAll(\":scope > [data-block-row]\").forEach((row) => {\n if (row.style.display === \"none\") return;\n const positionField = row.querySelector(\"[data-position-field]\");\n if (positionField) positionField.value = position;\n position += 1;\n });\n };\n\n // Adjacent block rows, skipping non-row siblings such as the hidden `id`\n // input Rails emits before each persisted block's fields.\n const previousRow = (row) => {\n let sibling = row.previousElementSibling;\n while (sibling && !sibling.matches(\"[data-block-row]\")) sibling = sibling.previousElementSibling;\n return sibling;\n };\n\n const nextRow = (row) => {\n let sibling = row.nextElementSibling;\n while (sibling && !sibling.matches(\"[data-block-row]\")) sibling = sibling.nextElementSibling;\n return sibling;\n };\n\n // Add a new block of the chosen type from its template.\n document.querySelectorAll(\"[data-add-block]\").forEach((button) => {\n button.addEventListener(\"click\", () => {\n const type = button.getAttribute(\"data-add-block\");\n const template = document.querySelector(`[data-block-template=\"${type}\"]`);\n if (!template) return;\n\n const html = template.innerHTML.replace(/NEW_RECORD/g, Date.now().toString());\n container.insertAdjacentHTML(\"beforeend\", html);\n renumberPositions();\n });\n });\n\n // Remove / move via event delegation.\n container.addEventListener(\"click\", (event) => {\n const row = event.target.closest(\"[data-block-row]\");\n if (!row) return;\n\n if (event.target.closest(\"[data-remove-block]\")) {\n const destroyField = row.querySelector(\"[data-destroy-field]\");\n if (destroyField && destroyField.value !== \"\") {\n // Existing record: mark for destruction and hide.\n destroyField.value = \"1\";\n row.style.display = \"none\";\n } else {\n // New record: drop from the DOM.\n row.remove();\n }\n renumberPositions();\n return;\n }\n\n if (event.target.closest(\"[data-move-up]\")) {\n const previous = previousRow(row);\n if (previous) container.insertBefore(row, previous);\n renumberPositions();\n return;\n }\n\n if (event.target.closest(\"[data-move-down]\")) {\n const next = nextRow(row);\n if (next) container.insertBefore(next, row);\n renumberPositions();\n }\n });\n\n renumberPositions();\n});\n","// Medical Record Form - Custom Service Type Toggle\ndocument.addEventListener(\"turbo:load\", () => {\n const serviceSelect = document.querySelector('select[name=\"medical_record[service_id]\"]');\n const customServiceField = document.getElementById('custom-service-type-field');\n\n if (!serviceSelect || !customServiceField) return;\n\n const otherServiceId = serviceSelect.dataset.otherServiceId;\n\n const toggleCustomServiceField = () => {\n const selectedValue = serviceSelect.value;\n if (selectedValue === otherServiceId) {\n customServiceField.style.display = '';\n } else {\n customServiceField.style.display = 'none';\n }\n };\n\n // Initial check\n toggleCustomServiceField();\n\n // Listen for changes\n serviceSelect.addEventListener('change', toggleCustomServiceField);\n});\n","// Meeting Form Dynamic Behavior\n// Handles service selection, specialist filtering, and custom reason visibility\n\nconst initMeetingForm = () => {\n const serviceSelect = document.getElementById('meeting_service_id');\n if (!serviceSelect) return;\n\n const specialistField = document.getElementById('specialist-field');\n const specialistSelect = document.getElementById('meeting_specialist_id');\n const customReasonField = document.getElementById('custom-reason-field');\n const customReasonInput = document.getElementById('meeting_custom_reason');\n const variableDurationFields = document.getElementById('variable-duration-fields');\n const availabilitySchedulerContainer = document.getElementById('availability-scheduler-container');\n const startTimeFallback = document.getElementById('start-time-fallback');\n const startTimeVariable = document.getElementById('meeting_start_time_variable');\n const endTimeVariable = document.getElementById('meeting_end_time_variable');\n const startTimeHidden = document.getElementById('meeting_start_time_hidden');\n const endTimeHidden = document.getElementById('meeting_end_time_hidden');\n\n // Get services metadata from the page\n const servicesMetadata = window.servicesMetadata || [];\n\n // Store all specialist options for filtering\n const allSpecialistOptions = specialistSelect ?\n Array.from(specialistSelect.options).map(opt => ({\n value: opt.value,\n text: opt.text,\n element: opt\n })) : [];\n\n const getServiceMetadata = (serviceId) => {\n return servicesMetadata.find(s => s.id === serviceId) || {};\n };\n\n const handleServiceChange = async () => {\n const serviceId = serviceSelect.value;\n const metadata = getServiceMetadata(serviceId);\n const hasFixedDuration = metadata.fixed_duration !== false;\n\n // Toggle specialist field visibility\n if (specialistField) {\n if (metadata.requires_specialist === false) {\n specialistField.style.display = 'none';\n if (specialistSelect) specialistSelect.value = '';\n } else {\n specialistField.style.display = 'block';\n await filterSpecialistsByService(serviceId, metadata.is_other);\n }\n }\n\n // Toggle custom reason field\n if (customReasonField && customReasonInput) {\n if (metadata.is_other) {\n customReasonField.style.display = 'block';\n } else {\n customReasonField.style.display = 'none';\n customReasonInput.value = '';\n }\n }\n\n // Toggle variable duration fields vs scheduler\n if (variableDurationFields) {\n if (!hasFixedDuration && serviceId) {\n // Show variable duration fields, hide scheduler\n variableDurationFields.style.display = 'block';\n if (availabilitySchedulerContainer) availabilitySchedulerContainer.style.display = 'none';\n if (startTimeFallback) startTimeFallback.style.display = 'none';\n\n // Enable the name attributes for variable duration inputs\n if (startTimeVariable) startTimeVariable.name = 'meeting[start_time]';\n if (endTimeVariable) endTimeVariable.name = 'meeting[end_time]';\n\n // Disable hidden fields\n if (startTimeHidden) startTimeHidden.name = '';\n if (endTimeHidden) endTimeHidden.name = '';\n } else {\n // Hide variable duration fields\n variableDurationFields.style.display = 'none';\n\n // Disable the name attributes for variable duration inputs\n if (startTimeVariable) startTimeVariable.name = '';\n if (endTimeVariable) endTimeVariable.name = '';\n\n // Re-enable hidden fields\n if (startTimeHidden) startTimeHidden.name = 'meeting[start_time]';\n if (endTimeHidden) endTimeHidden.name = 'meeting[end_time]';\n }\n }\n };\n\n const filterSpecialistsByService = async (serviceId, isOther) => {\n if (!specialistSelect) return;\n\n // If no service selected or \"Other\" is selected, show all specialists\n if (!serviceId || isOther) {\n showAllSpecialists();\n return;\n }\n\n try {\n // Fetch specialists for this service from API\n const response = await fetch(`/api/v1/services/${serviceId}/specialists`);\n if (!response.ok) {\n showAllSpecialists();\n return;\n }\n\n const specialists = await response.json();\n const specialistIds = specialists.map(s => s.id);\n\n // Filter dropdown options\n const currentValue = specialistSelect.value;\n let shouldResetValue = false;\n\n allSpecialistOptions.forEach(opt => {\n if (opt.value === '' || specialistIds.includes(opt.value)) {\n opt.element.style.display = '';\n opt.element.disabled = false;\n } else {\n opt.element.style.display = 'none';\n opt.element.disabled = true;\n if (opt.value === currentValue) {\n shouldResetValue = true;\n }\n }\n });\n\n if (shouldResetValue) {\n specialistSelect.value = '';\n }\n } catch (error) {\n console.error('Error fetching specialists:', error);\n showAllSpecialists();\n }\n };\n\n const showAllSpecialists = () => {\n if (!specialistSelect) return;\n\n allSpecialistOptions.forEach(opt => {\n opt.element.style.display = '';\n opt.element.disabled = false;\n });\n };\n\n // Attach event listener\n serviceSelect.addEventListener('change', handleServiceChange);\n\n // Initial state - if editing with a service selected\n if (serviceSelect.value) {\n handleServiceChange();\n }\n};\n\n// Initialize on both DOMContentLoaded and Turbo navigation\ndocument.addEventListener('DOMContentLoaded', initMeetingForm);\ndocument.addEventListener('turbo:load', initMeetingForm);\n","function setupReminderModal(modalId, submitSelector, method) {\n const modalEl = document.getElementById(modalId)\n if (!modalEl) return\n\n const modal = new bootstrap.Modal(modalEl, { backdrop: \"static\", keyboard: false })\n modal.show()\n\n const form = modalEl.querySelector(\"form\")\n const submitBtn = modalEl.querySelector(submitSelector)\n\n submitBtn.addEventListener(\"click\", async (e) => {\n e.preventDefault()\n const url = form.getAttribute(\"action\")\n const token = document.querySelector('meta[name=\"csrf-token\"]').content\n\n try {\n const response = await fetch(url, {\n method: method,\n body: new FormData(form),\n headers: { \"X-CSRF-Token\": token, \"Accept\": \"application/json\" }\n })\n\n if (response.ok) {\n modal.hide()\n }\n } catch (_error) {\n // Silently fail - user can still dismiss modal\n }\n })\n}\n\ndocument.addEventListener(\"turbo:load\", () => {\n setupReminderModal(\"reminderReviewModal\", \"[data-save-reminder]\", \"PATCH\")\n setupReminderModal(\"reminderCreateModal\", \"[data-create-reminder]\", \"POST\")\n})\n","// Reminder Schedule Form - Dynamic rows for add/remove\ndocument.addEventListener(\"turbo:load\", () => {\n const container = document.querySelector(\"[data-schedules-container]\");\n const template = document.querySelector(\"[data-schedule-template]\");\n const addButton = document.querySelector(\"[data-add-schedule]\");\n\n if (!container || !template || !addButton) return;\n\n // Add new schedule row\n addButton.addEventListener(\"click\", () => {\n const html = template.innerHTML.replace(/NEW_RECORD/g, Date.now().toString());\n container.insertAdjacentHTML(\"beforeend\", html);\n });\n\n // Remove schedule row (event delegation)\n container.addEventListener(\"click\", (event) => {\n const removeBtn = event.target.closest(\"[data-remove-schedule]\");\n if (!removeBtn) return;\n\n const row = removeBtn.closest(\"[data-schedule-row]\");\n if (!row) return;\n\n const destroyField = row.querySelector(\"[data-destroy-field]\");\n if (destroyField && destroyField.value !== \"\") {\n // Existing record: mark for destruction and hide\n destroyField.value = \"1\";\n row.style.display = \"none\";\n } else {\n // New record: remove from DOM\n row.remove();\n }\n });\n});\n","// Weekly Availability Panel\n// Handles dynamic time ranges, day toggles, validation, templates, copy, and stats\n\nconst initWeeklyAvailability = () => {\n const form = document.querySelector('.weekly-availability-form');\n if (!form) return;\n\n const i18n = window.weeklyAvailabilityI18n || {};\n const weekdays = window.weekdays || ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'];\n const allDays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n\n // Unsaved changes tracking\n let initialFormState = null;\n let hasUnsavedChanges = false;\n const unsavedIndicator = document.getElementById('unsaved-changes-indicator');\n const unsavedBanner = document.getElementById('unsaved-changes-banner');\n\n // Get the template for new time range rows\n const template = document.getElementById('time-range-template');\n\n // Copy modal elements\n const copyModal = document.getElementById('copy-modal');\n const copySourceDay = document.getElementById('copy-source-day');\n const copyConfirmBtn = document.getElementById('copy-confirm');\n const copyCancelBtn = document.getElementById('copy-cancel');\n const copyCloseBtn = document.getElementById('copy-modal-close');\n const copySelectWeekdays = document.getElementById('copy-select-weekdays');\n const copySelectAll = document.getElementById('copy-select-all');\n const copySelectNone = document.getElementById('copy-select-none');\n\n // Stats elements\n const totalHoursEl = document.getElementById('total-hours-value');\n const activeDaysEl = document.getElementById('active-days-value');\n const slotsPerWeekEl = document.getElementById('slots-per-week-value');\n\n // Current copy source day\n let currentCopySourceDay = null;\n\n // === Unsaved Changes Detection ===\n\n // Capture the current form state as a serialized string\n const captureFormState = () => {\n const state = {};\n allDays.forEach(dayName => {\n const daySchedule = document.querySelector(`.day-schedule[data-day=\"${dayName}\"]`);\n const checkbox = daySchedule.querySelector('.toggle-switch__input');\n const isActive = checkbox.checked;\n\n state[dayName] = {\n active: isActive,\n ranges: isActive ? getDayRanges(dayName) : []\n };\n });\n return JSON.stringify(state);\n };\n\n // Check if the form has unsaved changes\n const checkForChanges = () => {\n const currentState = captureFormState();\n const changed = currentState !== initialFormState;\n\n if (changed !== hasUnsavedChanges) {\n hasUnsavedChanges = changed;\n updateUnsavedIndicator();\n }\n };\n\n // Update the visual indicator for unsaved changes\n const updateUnsavedIndicator = () => {\n if (unsavedIndicator) {\n unsavedIndicator.style.display = hasUnsavedChanges ? 'inline-flex' : 'none';\n }\n if (unsavedBanner) {\n unsavedBanner.style.display = hasUnsavedChanges ? 'flex' : 'none';\n }\n };\n\n // Warn user before leaving with unsaved changes\n const handleBeforeUnload = (e) => {\n if (hasUnsavedChanges) {\n e.preventDefault();\n e.returnValue = '';\n return '';\n }\n };\n\n // Toggle day active/inactive\n const toggleDay = (event) => {\n const checkbox = event.target;\n const dayName = checkbox.dataset.day;\n const daySchedule = document.querySelector(`.day-schedule[data-day=\"${dayName}\"]`);\n\n const closedState = daySchedule.querySelector(`[data-weekly-availability-target=\"closedState\"][data-day=\"${dayName}\"]`);\n const rangesContainer = daySchedule.querySelector(`[data-weekly-availability-target=\"rangesContainer\"][data-day=\"${dayName}\"]`);\n const timeRanges = daySchedule.querySelector(`[data-weekly-availability-target=\"timeRanges\"][data-day=\"${dayName}\"]`);\n\n if (checkbox.checked) {\n // Activate day\n closedState.classList.add('hidden');\n rangesContainer.classList.remove('hidden');\n\n // If no ranges exist, add one\n const existingRanges = timeRanges.querySelectorAll('.time-range-row');\n if (existingRanges.length === 0) {\n addRangeToDay(dayName, timeRanges);\n }\n } else {\n // Deactivate day\n closedState.classList.remove('hidden');\n rangesContainer.classList.add('hidden');\n\n // Clear all ranges (remove the form fields)\n clearDayRanges(dayName, timeRanges);\n }\n };\n\n // Add a new time range to a day\n const addRange = (event) => {\n event.preventDefault();\n const dayName = event.currentTarget.dataset.day;\n const timeRanges = document.querySelector(`[data-weekly-availability-target=\"timeRanges\"][data-day=\"${dayName}\"]`);\n\n addRangeToDay(dayName, timeRanges);\n };\n\n // Add range to specific day\n const addRangeToDay = (dayName, container) => {\n if (!template) return;\n\n const existingRanges = container.querySelectorAll('.time-range-row');\n const newIndex = existingRanges.length;\n\n const templateContent = template.innerHTML\n .replace(/__DAY__/g, dayName)\n .replace(/__INDEX__/g, newIndex);\n\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = templateContent.trim();\n const newRow = tempDiv.firstChild;\n\n // Attach remove handler\n const removeBtn = newRow.querySelector('.btn-remove-range');\n if (removeBtn) {\n removeBtn.addEventListener('click', (e) => removeRange(e, container));\n }\n\n container.appendChild(newRow);\n };\n\n // Remove a time range\n const removeRange = (event, containerOverride = null) => {\n event.preventDefault();\n const row = event.currentTarget.closest('.time-range-row');\n const container = containerOverride || row.closest('.time-ranges');\n\n // Don't remove if it's the last range and day is active\n const daySchedule = container.closest('.day-schedule');\n const dayName = daySchedule.dataset.day;\n const checkbox = daySchedule.querySelector('.toggle-switch__input');\n\n const remainingRanges = container.querySelectorAll('.time-range-row');\n if (remainingRanges.length <= 1 && checkbox.checked) {\n // Instead of removing, just clear the values\n row.querySelectorAll('input[type=\"time\"]').forEach(input => {\n input.value = '';\n });\n return;\n }\n\n row.remove();\n\n // Reindex remaining ranges\n reindexRanges(dayName, container);\n };\n\n // Reindex range inputs after removal\n const reindexRanges = (dayName, container) => {\n const rows = container.querySelectorAll('.time-range-row');\n rows.forEach((row, index) => {\n row.dataset.rangeIndex = index;\n\n row.querySelectorAll('input').forEach(input => {\n const fieldName = input.dataset.field;\n if (fieldName) {\n input.name = `schedules[${dayName}][ranges][${index}][${fieldName}]`;\n }\n });\n });\n };\n\n // Clear all ranges for a day (when toggled off)\n const clearDayRanges = (dayName, container) => {\n // Don't remove the DOM elements, just disable/clear the inputs\n // This way if they toggle back on, we preserve structure\n container.querySelectorAll('.time-range-row').forEach(row => {\n row.querySelectorAll('input[type=\"time\"]').forEach(input => {\n input.value = '';\n });\n });\n };\n\n // Validate form before submission\n const validateForm = (event) => {\n let isValid = true;\n const errors = [];\n\n // Clear previous errors\n form.querySelectorAll('.time-range-row--error').forEach(row => {\n row.classList.remove('time-range-row--error');\n });\n form.querySelectorAll('.time-range-row__error').forEach(el => el.remove());\n\n // Check each active day\n document.querySelectorAll('.day-schedule').forEach(daySchedule => {\n const dayName = daySchedule.dataset.day;\n const checkbox = daySchedule.querySelector('.toggle-switch__input');\n\n if (!checkbox.checked) return;\n\n const container = daySchedule.querySelector('.time-ranges');\n const rows = container.querySelectorAll('.time-range-row');\n const ranges = [];\n\n rows.forEach((row, index) => {\n const startInput = row.querySelector('input[data-field=\"start_time\"]');\n const endInput = row.querySelector('input[data-field=\"end_time\"]');\n const startTime = startInput ? startInput.value : '';\n const endTime = endInput ? endInput.value : '';\n\n // Skip empty rows\n if (!startTime && !endTime) return;\n\n // Check if both times are filled\n if (!startTime || !endTime) {\n markRowError(row, i18n.errors?.emptyActive || 'Please fill both times');\n isValid = false;\n return;\n }\n\n // Check end > start\n if (endTime <= startTime) {\n markRowError(row, i18n.errors?.endBeforeStart || 'End time must be after start time');\n isValid = false;\n return;\n }\n\n // Store for overlap check\n ranges.push({\n index,\n row,\n start: timeToMinutes(startTime),\n end: timeToMinutes(endTime)\n });\n });\n\n // Check for overlaps\n for (let i = 0; i < ranges.length; i++) {\n for (let j = i + 1; j < ranges.length; j++) {\n if (rangesOverlap(ranges[i], ranges[j])) {\n markRowError(ranges[j].row, i18n.errors?.overlapping || 'Time ranges overlap');\n isValid = false;\n }\n }\n }\n\n // Check that active day has at least one valid range\n if (ranges.length === 0) {\n const firstRow = rows[0];\n if (firstRow) {\n markRowError(firstRow, i18n.errors?.emptyActive || 'Active day must have at least one time range');\n }\n isValid = false;\n }\n });\n\n if (!isValid) {\n event.preventDefault();\n }\n\n return isValid;\n };\n\n const markRowError = (row, message) => {\n row.classList.add('time-range-row--error');\n\n // Add error message if not already present\n if (!row.querySelector('.time-range-row__error')) {\n const errorEl = document.createElement('div');\n errorEl.className = 'time-range-row__error';\n errorEl.innerHTML = ` ${message}`;\n row.appendChild(errorEl);\n }\n };\n\n const timeToMinutes = (time) => {\n if (!time) return 0;\n const [hours, minutes] = time.split(':').map(Number);\n return hours * 60 + minutes;\n };\n\n const rangesOverlap = (a, b) => {\n return a.start < b.end && a.end > b.start;\n };\n\n // === Stats and Overview Functions ===\n\n // Update the weekly overview visualization\n const updateOverview = () => {\n allDays.forEach(dayName => {\n const slotsContainer = document.querySelector(`[data-weekly-availability-target=\"overviewSlots\"][data-day=\"${dayName}\"]`);\n if (!slotsContainer) return;\n\n const daySchedule = document.querySelector(`.day-schedule[data-day=\"${dayName}\"]`);\n const checkbox = daySchedule.querySelector('.toggle-switch__input');\n\n slotsContainer.innerHTML = '';\n\n if (!checkbox.checked) return;\n\n const ranges = getDayRanges(dayName);\n ranges.forEach(range => {\n if (!range.start || !range.end) return;\n\n const startMinutes = timeToMinutes(range.start);\n const endMinutes = timeToMinutes(range.end);\n\n // Calculate position (24 hours = 100%)\n const leftPercent = (startMinutes / 1440) * 100;\n const widthPercent = ((endMinutes - startMinutes) / 1440) * 100;\n\n // Determine period class\n let periodClass = '';\n const midpoint = (startMinutes + endMinutes) / 2;\n if (midpoint < 720) periodClass = 'overview-slot--morning';\n else if (midpoint < 1080) periodClass = 'overview-slot--afternoon';\n else periodClass = 'overview-slot--evening';\n\n const slot = document.createElement('div');\n slot.className = `overview-slot ${periodClass}`;\n slot.style.left = `${leftPercent}%`;\n slot.style.width = `${widthPercent}%`;\n slotsContainer.appendChild(slot);\n });\n });\n };\n\n // Get all ranges for a day\n const getDayRanges = (dayName) => {\n const daySchedule = document.querySelector(`.day-schedule[data-day=\"${dayName}\"]`);\n if (!daySchedule) return [];\n\n const ranges = [];\n const rows = daySchedule.querySelectorAll('.time-range-row');\n\n rows.forEach(row => {\n const startInput = row.querySelector('input[data-field=\"start_time\"]');\n const endInput = row.querySelector('input[data-field=\"end_time\"]');\n if (startInput && endInput && startInput.value && endInput.value) {\n ranges.push({\n start: startInput.value,\n end: endInput.value\n });\n }\n });\n\n return ranges;\n };\n\n // Update statistics\n const updateStats = () => {\n let totalMinutes = 0;\n let activeDays = 0;\n let totalSlots = 0;\n\n allDays.forEach(dayName => {\n const daySchedule = document.querySelector(`.day-schedule[data-day=\"${dayName}\"]`);\n const checkbox = daySchedule.querySelector('.toggle-switch__input');\n\n if (!checkbox.checked) return;\n\n const ranges = getDayRanges(dayName);\n if (ranges.length === 0) return;\n\n activeDays++;\n\n ranges.forEach(range => {\n const startMinutes = timeToMinutes(range.start);\n const endMinutes = timeToMinutes(range.end);\n const duration = endMinutes - startMinutes;\n\n if (duration > 0) {\n totalMinutes += duration;\n // Calculate 30-minute slots\n totalSlots += Math.floor(duration / 30);\n }\n });\n });\n\n const totalHours = Math.round(totalMinutes / 60 * 10) / 10; // 1 decimal\n\n if (totalHoursEl) totalHoursEl.textContent = totalHours;\n if (activeDaysEl) activeDaysEl.textContent = activeDays;\n if (slotsPerWeekEl) slotsPerWeekEl.textContent = totalSlots;\n };\n\n // Update both overview and stats\n const updateVisualization = () => {\n updateOverview();\n updateStats();\n checkForChanges();\n };\n\n // === Template Functions ===\n\n const templates = {\n 'full-time': {\n days: ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'],\n ranges: [\n { start: '09:00', end: '13:00' },\n { start: '14:00', end: '18:00' }\n ]\n },\n 'mornings': {\n days: ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'],\n ranges: [\n { start: '08:00', end: '13:00' }\n ]\n },\n 'afternoons': {\n days: ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'],\n ranges: [\n { start: '14:00', end: '20:00' }\n ]\n },\n 'clear': {\n days: [],\n ranges: []\n }\n };\n\n const applyTemplate = (event) => {\n const templateName = event.currentTarget.dataset.template;\n const templateConfig = templates[templateName];\n\n if (!templateConfig) return;\n\n // Apply to all days\n allDays.forEach(dayName => {\n const daySchedule = document.querySelector(`.day-schedule[data-day=\"${dayName}\"]`);\n const checkbox = daySchedule.querySelector('.toggle-switch__input');\n const closedState = daySchedule.querySelector(`[data-weekly-availability-target=\"closedState\"]`);\n const rangesContainer = daySchedule.querySelector(`[data-weekly-availability-target=\"rangesContainer\"]`);\n const timeRanges = daySchedule.querySelector(`[data-weekly-availability-target=\"timeRanges\"]`);\n\n const shouldBeActive = templateConfig.days.includes(dayName);\n\n // Update checkbox\n checkbox.checked = shouldBeActive;\n\n if (shouldBeActive) {\n closedState.classList.add('hidden');\n rangesContainer.classList.remove('hidden');\n\n // Clear existing ranges\n timeRanges.innerHTML = '';\n\n // Add template ranges\n templateConfig.ranges.forEach((range, index) => {\n addRangeWithValues(dayName, timeRanges, index, range.start, range.end);\n });\n } else {\n closedState.classList.remove('hidden');\n rangesContainer.classList.add('hidden');\n timeRanges.innerHTML = '';\n }\n });\n\n updateVisualization();\n };\n\n const addRangeWithValues = (dayName, container, index, startTime, endTime) => {\n if (!template) return;\n\n const templateContent = template.innerHTML\n .replace(/__DAY__/g, dayName)\n .replace(/__INDEX__/g, index);\n\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = templateContent.trim();\n const newRow = tempDiv.firstChild;\n\n // Set values\n const startInput = newRow.querySelector('input[data-field=\"start_time\"]');\n const endInput = newRow.querySelector('input[data-field=\"end_time\"]');\n if (startInput) startInput.value = startTime;\n if (endInput) endInput.value = endTime;\n\n // Attach remove handler\n const removeBtn = newRow.querySelector('.btn-remove-range');\n if (removeBtn) {\n removeBtn.addEventListener('click', (e) => removeRange(e, container));\n }\n\n // Attach input change handler for real-time updates\n newRow.querySelectorAll('input[type=\"time\"]').forEach(input => {\n input.addEventListener('change', updateVisualization);\n });\n\n container.appendChild(newRow);\n };\n\n // === Copy Modal Functions ===\n\n const showCopyModal = (event) => {\n currentCopySourceDay = event.currentTarget.dataset.day;\n const dayLabel = i18n.days?.[currentCopySourceDay] || currentCopySourceDay;\n\n if (copySourceDay) copySourceDay.textContent = dayLabel;\n\n // Reset checkboxes\n copyModal.querySelectorAll('.copy-day-input').forEach(input => {\n const dayName = input.closest('.copy-day-checkbox').dataset.day;\n input.checked = false;\n input.disabled = dayName === currentCopySourceDay;\n });\n\n copyModal.style.display = 'flex';\n };\n\n const hideCopyModal = () => {\n copyModal.style.display = 'none';\n currentCopySourceDay = null;\n };\n\n const confirmCopy = () => {\n if (!currentCopySourceDay) return;\n\n const sourceRanges = getDayRanges(currentCopySourceDay);\n const sourceDaySchedule = document.querySelector(`.day-schedule[data-day=\"${currentCopySourceDay}\"]`);\n const sourceCheckbox = sourceDaySchedule.querySelector('.toggle-switch__input');\n const isSourceActive = sourceCheckbox.checked;\n\n // Get selected target days\n const targetDays = [];\n copyModal.querySelectorAll('.copy-day-input:checked').forEach(input => {\n targetDays.push(input.value);\n });\n\n if (targetDays.length === 0) {\n hideCopyModal();\n return;\n }\n\n // Copy to each target day\n targetDays.forEach(dayName => {\n const daySchedule = document.querySelector(`.day-schedule[data-day=\"${dayName}\"]`);\n const checkbox = daySchedule.querySelector('.toggle-switch__input');\n const closedState = daySchedule.querySelector(`[data-weekly-availability-target=\"closedState\"]`);\n const rangesContainer = daySchedule.querySelector(`[data-weekly-availability-target=\"rangesContainer\"]`);\n const timeRanges = daySchedule.querySelector(`[data-weekly-availability-target=\"timeRanges\"]`);\n\n // Set active state\n checkbox.checked = isSourceActive;\n\n if (isSourceActive && sourceRanges.length > 0) {\n closedState.classList.add('hidden');\n rangesContainer.classList.remove('hidden');\n\n // Clear existing ranges\n timeRanges.innerHTML = '';\n\n // Add copied ranges\n sourceRanges.forEach((range, index) => {\n addRangeWithValues(dayName, timeRanges, index, range.start, range.end);\n });\n } else {\n closedState.classList.remove('hidden');\n rangesContainer.classList.add('hidden');\n timeRanges.innerHTML = '';\n }\n });\n\n updateVisualization();\n hideCopyModal();\n };\n\n const selectCopyDays = (daysToSelect) => {\n copyModal.querySelectorAll('.copy-day-input').forEach(input => {\n const dayName = input.closest('.copy-day-checkbox').dataset.day;\n if (dayName === currentCopySourceDay) {\n input.checked = false;\n } else if (daysToSelect === 'all') {\n input.checked = true;\n } else if (daysToSelect === 'none') {\n input.checked = false;\n } else if (daysToSelect === 'weekdays') {\n input.checked = weekdays.includes(dayName);\n }\n });\n };\n\n // Attach event handlers\n document.querySelectorAll('.toggle-switch__input').forEach(checkbox => {\n checkbox.addEventListener('change', (e) => {\n toggleDay(e);\n updateVisualization();\n });\n });\n\n document.querySelectorAll('.btn-add-range').forEach(btn => {\n btn.addEventListener('click', addRange);\n });\n\n document.querySelectorAll('.btn-remove-range').forEach(btn => {\n btn.addEventListener('click', (e) => {\n removeRange(e);\n updateVisualization();\n });\n });\n\n // Time input change handlers for real-time updates\n document.querySelectorAll('.time-range-row input[type=\"time\"]').forEach(input => {\n input.addEventListener('change', updateVisualization);\n });\n\n // Template buttons\n document.querySelectorAll('[data-action=\"click->weekly-availability#applyTemplate\"]').forEach(btn => {\n btn.addEventListener('click', applyTemplate);\n });\n\n // Copy buttons\n document.querySelectorAll('.btn-copy-day').forEach(btn => {\n btn.addEventListener('click', showCopyModal);\n });\n\n // Copy modal buttons\n if (copyConfirmBtn) copyConfirmBtn.addEventListener('click', confirmCopy);\n if (copyCancelBtn) copyCancelBtn.addEventListener('click', hideCopyModal);\n if (copyCloseBtn) copyCloseBtn.addEventListener('click', hideCopyModal);\n if (copySelectWeekdays) copySelectWeekdays.addEventListener('click', () => selectCopyDays('weekdays'));\n if (copySelectAll) copySelectAll.addEventListener('click', () => selectCopyDays('all'));\n if (copySelectNone) copySelectNone.addEventListener('click', () => selectCopyDays('none'));\n\n // Close modal on overlay click\n if (copyModal) {\n copyModal.addEventListener('click', (e) => {\n if (e.target === copyModal) hideCopyModal();\n });\n }\n\n form.addEventListener('submit', (e) => {\n if (validateForm(e)) {\n // Clear unsaved changes flag on successful submit\n hasUnsavedChanges = false;\n window.removeEventListener('beforeunload', handleBeforeUnload);\n }\n });\n\n // Initial visualization update\n updateVisualization();\n\n // Capture initial state after visualization update\n initialFormState = captureFormState();\n hasUnsavedChanges = false;\n updateUnsavedIndicator();\n\n // Warn before leaving with unsaved changes\n window.addEventListener('beforeunload', handleBeforeUnload);\n\n // Also handle Turbo navigation\n document.addEventListener('turbo:before-visit', (e) => {\n if (hasUnsavedChanges) {\n const message = i18n.unsavedChanges?.confirmLeave || 'You have unsaved changes. Are you sure you want to leave?';\n if (!confirm(message)) {\n e.preventDefault();\n }\n }\n }, { once: true });\n};\n\n// Initialize on page load and Turbo navigation\ndocument.addEventListener('DOMContentLoaded', initWeeklyAvailability);\ndocument.addEventListener('turbo:load', initWeeklyAvailability);\n","export default {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\n}\n","import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n// ActionCable.logger.enabled = true\n//\n// Example:\n//\n// import * as ActionCable from '@rails/actioncable'\n//\n// ActionCable.logger.enabled = true\n// ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now())\n adapters.logger.log(\"[ActionCable]\", ...messages)\n }\n },\n}\n","import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this)\n this.connection = connection\n this.reconnectAttempts = 0\n }\n\n start() {\n if (!this.isRunning()) {\n this.startedAt = now()\n delete this.stoppedAt\n this.startPolling()\n addEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n }\n }\n\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now()\n this.stopPolling()\n removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(\"ConnectionMonitor stopped\")\n }\n }\n\n isRunning() {\n return this.startedAt && !this.stoppedAt\n }\n\n recordMessage() {\n this.pingedAt = now()\n }\n\n recordConnect() {\n this.reconnectAttempts = 0\n delete this.disconnectedAt\n logger.log(\"ConnectionMonitor recorded connect\")\n }\n\n recordDisconnect() {\n this.disconnectedAt = now()\n logger.log(\"ConnectionMonitor recorded disconnect\")\n }\n\n // Private\n\n startPolling() {\n this.stopPolling()\n this.poll()\n }\n\n stopPolling() {\n clearTimeout(this.pollTimeout)\n }\n\n poll() {\n this.pollTimeout = setTimeout(() => {\n this.reconnectIfStale()\n this.poll()\n }\n , this.getPollInterval())\n }\n\n getPollInterval() {\n const { staleThreshold, reconnectionBackoffRate } = this.constructor\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n const jitter = jitterMax * Math.random()\n return staleThreshold * 1000 * backoff * (1 + jitter)\n }\n\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n this.reconnectAttempts++\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n } else {\n logger.log(\"ConnectionMonitor reopening\")\n this.connection.reopen()\n }\n }\n }\n\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt\n }\n\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n }\n\n disconnectedRecently() {\n return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n }\n\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout(() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n this.connection.reopen()\n }\n }\n , 200)\n }\n }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n","export default {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"disconnect\": \"disconnect\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"disconnect_reasons\": {\n \"unauthorized\": \"unauthorized\",\n \"invalid_request\": \"invalid_request\",\n \"server_restart\": \"server_restart\",\n \"remote\": \"remote\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\n \"actioncable-v1-json\",\n \"actioncable-unsupported\"\n ]\n}\n","import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this)\n this.consumer = consumer\n this.subscriptions = this.consumer.subscriptions\n this.monitor = new ConnectionMonitor(this)\n this.disconnected = true\n }\n\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data))\n return true\n } else {\n return false\n }\n }\n\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n return false\n } else {\n const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n if (this.webSocket) { this.uninstallEventHandlers() }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\n this.installEventHandlers()\n this.monitor.start()\n return true\n }\n }\n\n close({allowReconnect} = {allowReconnect: true}) {\n if (!allowReconnect) { this.monitor.stop() }\n // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n if (this.isOpen()) {\n return this.webSocket.close()\n }\n }\n\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n if (this.isActive()) {\n try {\n return this.close()\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error)\n }\n finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n setTimeout(this.open, this.constructor.reopenDelay)\n }\n } else {\n return this.open()\n }\n }\n\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol\n }\n }\n\n isOpen() {\n return this.isState(\"open\")\n }\n\n isActive() {\n return this.isState(\"open\", \"connecting\")\n }\n\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0\n }\n\n // Private\n\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n }\n\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0\n }\n\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase()\n }\n }\n }\n return null\n }\n\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this)\n this.webSocket[`on${eventName}`] = handler\n }\n }\n\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {}\n }\n }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) { return }\n const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n this.monitor.recordMessage()\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true\n }\n this.monitor.recordConnect()\n return this.subscriptions.reload()\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`)\n return this.close({allowReconnect: reconnect})\n case message_types.ping:\n return null\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier)\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n }\n case message_types.rejection:\n return this.subscriptions.reject(identifier)\n default:\n return this.subscriptions.notify(identifier, \"received\", message)\n }\n },\n\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n this.disconnected = false\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n return this.close({allowReconnect: false})\n }\n },\n\n close(event) {\n logger.log(\"WebSocket onclose event\")\n if (this.disconnected) { return }\n this.disconnected = true\n this.monitor.recordDisconnect()\n return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n },\n\n error() {\n logger.log(\"WebSocket onerror event\")\n }\n}\n\nexport default Connection\n","// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n// connected() {\n// // Called once the subscription has been successfully completed\n// },\n//\n// disconnected({ willAttemptReconnect: boolean }) {\n// // Called when the client has disconnected with the server.\n// // The object will have an `willAttemptReconnect` property which\n// // says whether the client has the intention of attempting\n// // to reconnect.\n// },\n//\n// appear() {\n// this.perform('appear', {appearing_on: this.appearingOn()})\n// },\n//\n// away() {\n// this.perform('away')\n// },\n//\n// appearingOn() {\n// $('main').data('appearing-on')\n// }\n// })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n// class AppearanceChannel < ApplicationActionCable::Channel\n// def subscribed\n// current_user.appear\n// end\n//\n// def unsubscribed\n// current_user.disappear\n// end\n//\n// def appear(data)\n// current_user.appear on: data['appearing_on']\n// end\n//\n// def away\n// current_user.away\n// end\n// end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key]\n object[key] = value\n }\n }\n return object\n}\n\nexport default class Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer\n this.identifier = JSON.stringify(params)\n extend(this, mixin)\n }\n\n // Perform a channel action with the optional data passed as an attribute\n perform(action, data = {}) {\n data.action = action\n return this.send(data)\n }\n\n send(data) {\n return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n }\n\n unsubscribe() {\n return this.consumer.subscriptions.remove(this)\n }\n}\n","import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions\n this.pendingSubscriptions = []\n }\n\n guarantee(subscription) {\n if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n this.pendingSubscriptions.push(subscription) \n }\n else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n }\n this.startGuaranteeing()\n }\n\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n }\n\n startGuaranteeing() {\n this.stopGuaranteeing()\n this.retrySubscribing()\n }\n \n stopGuaranteeing() {\n clearTimeout(this.retryTimeout)\n }\n\n retrySubscribing() {\n this.retryTimeout = setTimeout(() => {\n if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n this.pendingSubscriptions.map((subscription) => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n this.subscriptions.subscribe(subscription)\n })\n }\n }\n , 500)\n }\n}\n\nexport default SubscriptionGuarantor","import logger from \"./logger\"\nimport Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n constructor(consumer) {\n this.consumer = consumer\n this.guarantor = new SubscriptionGuarantor(this)\n this.subscriptions = []\n }\n\n create(channelName, mixin) {\n const channel = channelName\n const params = typeof channel === \"object\" ? channel : {channel}\n const subscription = new Subscription(this.consumer, params, mixin)\n return this.add(subscription)\n }\n\n // Private\n\n add(subscription) {\n this.subscriptions.push(subscription)\n this.consumer.ensureActiveConnection()\n this.notify(subscription, \"initialized\")\n this.subscribe(subscription)\n return subscription\n }\n\n remove(subscription) {\n this.forget(subscription)\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\")\n }\n return subscription\n }\n\n reject(identifier) {\n return this.findAll(identifier).map((subscription) => {\n this.forget(subscription)\n this.notify(subscription, \"rejected\")\n return subscription\n })\n }\n\n forget(subscription) {\n this.guarantor.forget(subscription)\n this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n return subscription\n }\n\n findAll(identifier) {\n return this.subscriptions.filter((s) => s.identifier === identifier)\n }\n\n reload() {\n return this.subscriptions.map((subscription) =>\n this.subscribe(subscription))\n }\n\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription) =>\n this.notify(subscription, callbackName, ...args))\n }\n\n notify(subscription, callbackName, ...args) {\n let subscriptions\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription)\n } else {\n subscriptions = [subscription]\n }\n\n return subscriptions.map((subscription) =>\n (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n }\n\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription)\n }\n }\n\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`)\n this.findAll(identifier).map((subscription) =>\n this.guarantor.forget(subscription))\n }\n\n sendCommand(subscription, command) {\n const {identifier} = subscription\n return this.consumer.send({command, identifier})\n }\n}\n","import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n// App.cable.disconnect()\n//\n// and to restart the connection:\n//\n// App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n constructor(url) {\n this._url = url\n this.subscriptions = new Subscriptions(this)\n this.connection = new Connection(this)\n this.subprotocols = []\n }\n\n get url() {\n return createWebSocketURL(this._url)\n }\n\n send(data) {\n return this.connection.send(data)\n }\n\n connect() {\n return this.connection.open()\n }\n\n disconnect() {\n return this.connection.close({allowReconnect: false})\n }\n\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open()\n }\n }\n\n addSubProtocol(subprotocol) {\n this.subprotocols = [...this.subprotocols, subprotocol]\n }\n}\n\nexport function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url()\n }\n\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\")\n a.href = url\n // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n a.href = a.href // eslint-disable-line\n a.protocol = a.protocol.replace(\"http\", \"ws\")\n return a.href\n } else {\n return url\n }\n}\n","import adapters from \"./adapters\"\nimport Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\nimport Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport Subscriptions from \"./subscriptions\"\n\nexport {\n Connection,\n ConnectionMonitor,\n Consumer,\n INTERNAL,\n Subscription,\n Subscriptions,\n SubscriptionGuarantor,\n adapters,\n createWebSocketURL,\n logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url)\n}\n\nexport function getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n if (element) {\n return element.getAttribute(\"content\")\n }\n}\n","/*\n * jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/\n * Open source under the BSD License.\n * Copyright © 2008 George McGinley Smith\n * All rights reserved.\n * https://raw.github.com/gdsmith/jquery-easing/master/LICENSE\n*/\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(['jquery'], function ($) {\n\t\t\treturn factory($);\n\t\t});\n\t} else if (typeof module === \"object\" && typeof module.exports === \"object\") {\n\t\texports = factory(require('jquery'));\n\t} else {\n\t\tfactory(jQuery);\n\t}\n})(function($){\n\n// Preserve the original jQuery \"swing\" easing as \"jswing\"\n$.easing.jswing = $.easing.swing;\n\nvar pow = Math.pow,\n\tsqrt = Math.sqrt,\n\tsin = Math.sin,\n\tcos = Math.cos,\n\tPI = Math.PI,\n\tc1 = 1.70158,\n\tc2 = c1 * 1.525,\n\tc3 = c1 + 1,\n\tc4 = ( 2 * PI ) / 3,\n\tc5 = ( 2 * PI ) / 4.5;\n\n// x is the fraction of animation progress, in the range 0..1\nfunction bounceOut(x) {\n\tvar n1 = 7.5625,\n\t\td1 = 2.75;\n\tif ( x < 1/d1 ) {\n\t\treturn n1*x*x;\n\t} else if ( x < 2/d1 ) {\n\t\treturn n1*(x-=(1.5/d1))*x + 0.75;\n\t} else if ( x < 2.5/d1 ) {\n\t\treturn n1*(x-=(2.25/d1))*x + 0.9375;\n\t} else {\n\t\treturn n1*(x-=(2.625/d1))*x + 0.984375;\n\t}\n}\n\n$.extend( $.easing,\n{\n\tdef: 'easeOutQuad',\n\tswing: function (x) {\n\t\treturn $.easing[$.easing.def](x);\n\t},\n\teaseInQuad: function (x) {\n\t\treturn x * x;\n\t},\n\teaseOutQuad: function (x) {\n\t\treturn 1 - ( 1 - x ) * ( 1 - x );\n\t},\n\teaseInOutQuad: function (x) {\n\t\treturn x < 0.5 ?\n\t\t\t2 * x * x :\n\t\t\t1 - pow( -2 * x + 2, 2 ) / 2;\n\t},\n\teaseInCubic: function (x) {\n\t\treturn x * x * x;\n\t},\n\teaseOutCubic: function (x) {\n\t\treturn 1 - pow( 1 - x, 3 );\n\t},\n\teaseInOutCubic: function (x) {\n\t\treturn x < 0.5 ?\n\t\t\t4 * x * x * x :\n\t\t\t1 - pow( -2 * x + 2, 3 ) / 2;\n\t},\n\teaseInQuart: function (x) {\n\t\treturn x * x * x * x;\n\t},\n\teaseOutQuart: function (x) {\n\t\treturn 1 - pow( 1 - x, 4 );\n\t},\n\teaseInOutQuart: function (x) {\n\t\treturn x < 0.5 ?\n\t\t\t8 * x * x * x * x :\n\t\t\t1 - pow( -2 * x + 2, 4 ) / 2;\n\t},\n\teaseInQuint: function (x) {\n\t\treturn x * x * x * x * x;\n\t},\n\teaseOutQuint: function (x) {\n\t\treturn 1 - pow( 1 - x, 5 );\n\t},\n\teaseInOutQuint: function (x) {\n\t\treturn x < 0.5 ?\n\t\t\t16 * x * x * x * x * x :\n\t\t\t1 - pow( -2 * x + 2, 5 ) / 2;\n\t},\n\teaseInSine: function (x) {\n\t\treturn 1 - cos( x * PI/2 );\n\t},\n\teaseOutSine: function (x) {\n\t\treturn sin( x * PI/2 );\n\t},\n\teaseInOutSine: function (x) {\n\t\treturn -( cos( PI * x ) - 1 ) / 2;\n\t},\n\teaseInExpo: function (x) {\n\t\treturn x === 0 ? 0 : pow( 2, 10 * x - 10 );\n\t},\n\teaseOutExpo: function (x) {\n\t\treturn x === 1 ? 1 : 1 - pow( 2, -10 * x );\n\t},\n\teaseInOutExpo: function (x) {\n\t\treturn x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?\n\t\t\tpow( 2, 20 * x - 10 ) / 2 :\n\t\t\t( 2 - pow( 2, -20 * x + 10 ) ) / 2;\n\t},\n\teaseInCirc: function (x) {\n\t\treturn 1 - sqrt( 1 - pow( x, 2 ) );\n\t},\n\teaseOutCirc: function (x) {\n\t\treturn sqrt( 1 - pow( x - 1, 2 ) );\n\t},\n\teaseInOutCirc: function (x) {\n\t\treturn x < 0.5 ?\n\t\t\t( 1 - sqrt( 1 - pow( 2 * x, 2 ) ) ) / 2 :\n\t\t\t( sqrt( 1 - pow( -2 * x + 2, 2 ) ) + 1 ) / 2;\n\t},\n\teaseInElastic: function (x) {\n\t\treturn x === 0 ? 0 : x === 1 ? 1 :\n\t\t\t-pow( 2, 10 * x - 10 ) * sin( ( x * 10 - 10.75 ) * c4 );\n\t},\n\teaseOutElastic: function (x) {\n\t\treturn x === 0 ? 0 : x === 1 ? 1 :\n\t\t\tpow( 2, -10 * x ) * sin( ( x * 10 - 0.75 ) * c4 ) + 1;\n\t},\n\teaseInOutElastic: function (x) {\n\t\treturn x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?\n\t\t\t-( pow( 2, 20 * x - 10 ) * sin( ( 20 * x - 11.125 ) * c5 )) / 2 :\n\t\t\tpow( 2, -20 * x + 10 ) * sin( ( 20 * x - 11.125 ) * c5 ) / 2 + 1;\n\t},\n\teaseInBack: function (x) {\n\t\treturn c3 * x * x * x - c1 * x * x;\n\t},\n\teaseOutBack: function (x) {\n\t\treturn 1 + c3 * pow( x - 1, 3 ) + c1 * pow( x - 1, 2 );\n\t},\n\teaseInOutBack: function (x) {\n\t\treturn x < 0.5 ?\n\t\t\t( pow( 2 * x, 2 ) * ( ( c2 + 1 ) * 2 * x - c2 ) ) / 2 :\n\t\t\t( pow( 2 * x - 2, 2 ) *( ( c2 + 1 ) * ( x * 2 - 2 ) + c2 ) + 2 ) / 2;\n\t},\n\teaseInBounce: function (x) {\n\t\treturn 1 - bounceOut( 1 - x );\n\t},\n\teaseOutBounce: bounceOut,\n\teaseInOutBounce: function (x) {\n\t\treturn x < 0.5 ?\n\t\t\t( 1 - bounceOut( 1 - 2 * x ) ) / 2 :\n\t\t\t( 1 + bounceOut( 2 * x - 1 ) ) / 2;\n\t}\n});\n\n});\n","/*!\n * Select2 4.1.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n }\n else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n} (function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n], function () {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n var computedEl = window.getComputedStyle(el);\n\n return (parseFloat(computedEl.height) < el.scrollHeight ||\n parseFloat(computedEl.width) < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Cache objects in Utils.__cache instead of $.data (see #4346)\n Utils.__cache = {};\n\n var id = 0;\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id with a prefix.\n // If an id already exists, it simply returns it with a prefix.\n\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id != null) {\n return select2Id;\n }\n\n // If element has id, use it.\n if (element.id) {\n select2Id = 'select2-data-' + element.id;\n } else {\n select2Id = 'select2-data-' + (++id).toString() +\n '-' + Utils.generateChars(4);\n }\n\n element.setAttribute('data-select2-id', select2Id);\n\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (name) {\n // Convert the attribute name format (e.g. 'foo-bar') to the dataset\n // property key format (e.g. 'fooBar') as required by the HTML spec.\n var datasetKey = name.replace(/-([a-z])/g, function (_, letter) {\n return letter.toUpperCase();\n });\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n return element.dataset[datasetKey]; // Fallback to HTML5 data attribs.\n }\n return element.dataset[datasetKey]; // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n Utils.copyNonInternalCssClasses = function (dest, src) {\n var classes;\n\n var destinationClasses = dest.getAttribute('class').trim().split(/\\s+/);\n\n destinationClasses = destinationClasses.filter(function (clazz) {\n // Save all Select2 classes\n return clazz.indexOf('select2-') === 0;\n });\n\n var sourceClasses = src.getAttribute('class').trim().split(/\\s+/);\n\n sourceClasses = sourceClasses.filter(function (clazz) {\n // Only copy non-Select2 classes\n return clazz.indexOf('select2-') !== 0;\n });\n\n var replacements = destinationClasses.concat(sourceClasses);\n\n dest.setAttribute('class', replacements.join(' '));\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n ''\n );\n\n if (this.options.get('multiple')) {\n $results[0].setAttribute('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option--selectable');\n\n var $selected = $options.filter('.select2-results__option--selected');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = selected.map(function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option--selectable');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = Utils.GetData(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && selectedIds.indexOf(id) > -1)) {\n this.classList.add('select2-results__option--selected');\n $option[0].setAttribute('aria-selected', 'true');\n } else {\n this.classList.remove('select2-results__option--selected');\n $option[0].setAttribute('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.classList.add('select2-results__option');\n option.classList.add('select2-results__option--selectable');\n\n var attrs = {\n 'role': 'option'\n };\n\n var matches = window.Element.prototype.matches ||\n window.Element.prototype.msMatchesSelector ||\n window.Element.prototype.webkitMatchesSelector;\n\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\n (data.element == null && data.disabled)) {\n attrs['aria-disabled'] = 'true';\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--disabled');\n }\n\n if (data.id == null) {\n option.classList.remove('select2-results__option--selectable');\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--group');\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('', {\n 'class': 'select2-results__options select2-results__options--nested',\n 'role': 'none'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results[0].setAttribute('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results[0].setAttribute('aria-expanded', 'true');\n self.$results[0].setAttribute('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results[0].setAttribute('aria-expanded', 'false');\n self.$results[0].setAttribute('aria-hidden', 'true');\n self.$results[0].removeAttribute('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.hasClass('select2-results__option--selected')) {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element[0].classList.add('select2-results__option--highlighted');\n params.element[0].setAttribute('aria-selected', 'true');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option--selectable',\n function (evt) {\n var $this = $(this);\n\n var data = Utils.GetData(this, 'data');\n\n if ($this.hasClass('select2-results__option--selected')) {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {\n originalEvent: evt,\n data: data\n });\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option--selectable',\n function (evt) {\n var data = Utils.GetData(this, 'data');\n\n var $highlighted = self.getHighlightedResults();\n $highlighted.removeClass('select2-results__option--highlighted');\n $highlighted.each(function () {\n this.setAttribute('aria-selected', 'false');\n });\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element[0].getAttribute('tabindex') != null) {\n this._tabindex = this.$element[0].getAttribute('tabindex');\n }\n\n if(this.$element[0].getAttribute('title')) {\n $selection[0]\n .setAttribute('title', this.$element[0].getAttribute('title'));\n }\n $selection[0].setAttribute('tabindex', this._tabindex);\n $selection[0].setAttribute('aria-disabled', 'false');\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection[0]\n .setAttribute('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection[0].setAttribute('aria-expanded', 'true');\n self.$selection[0].setAttribute('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection[0].setAttribute('aria-expanded', 'false');\n self.$selection[0].removeAttribute('aria-activedescendant');\n self.$selection[0].removeAttribute('aria-owns');\n\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection[0].setAttribute('tabindex', self._tabindex);\n self.$selection[0].setAttribute('aria-disabled', 'false');\n });\n\n container.on('disable', function () {\n self.$selection[0].setAttribute('tabindex', '-1');\n self.$selection[0].setAttribute('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n var rendered = this.$selection.find('.select2-selection__rendered')[0];\n if(rendered != null) {\n rendered.setAttribute('id', id);\n rendered.setAttribute('role', 'textbox');\n rendered.setAttribute('aria-readonly', 'true');\n }\n this.$selection[0].setAttribute('aria-labelledby', id);\n this.$selection[0].setAttribute('aria-controls', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered[0].removeAttribute('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered[0].setAttribute('title', title);\n } else {\n $rendered[0].removeAttribute('title');\n }\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--multiple');\n\n $selection.html(\n ''\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n var rendered = this.$selection.find('.select2-selection__rendered')[0];\n if(rendered != null) {\n rendered.setAttribute('id', id);\n }\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = Utils.GetData($selection[0], 'data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n\n this.$selection.on(\n 'keydown',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n evt.stopPropagation();\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered[0].removeAttribute('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
  • ' +\n '' +\n '' +\n '
  • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n var selectionIdPrefix = this.$selection\n .find('.select2-selection__rendered')[0]\n .getAttribute('id') + '-choice-';\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';\n\n if (selection.id) {\n selectionId += selection.id;\n } else {\n selectionId += Utils.generateChars(4);\n }\n\n $selection.find('.select2-selection__choice__display')\n .append(formatted)[0]\n .setAttribute('id', selectionId);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $selection[0].setAttribute('title', title);\n }\n\n var removeItem = this.options.get('translations').get('removeItem');\n\n var remove = $selection.find('.select2-selection__choice__remove')[0];\n\n remove.setAttribute('title', removeItem());\n remove.setAttribute('aria-label', removeItem());\n remove.setAttribute('aria-describedby', selectionId);\n\n Utils.StoreData($selection[0], 'data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n $rendered.append($selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n\n], function () {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder !== 'object') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder[0].classList.add('select2-selection__placeholder');\n $placeholder[0].classList.remove('select2-selection__choice');\n\n var placeholderTitle = placeholder.title ||\n placeholder.text ||\n $placeholder.text();\n\n this.$selection.find('.select2-selection__rendered')[0].setAttribute(\n 'title',\n placeholderTitle\n );\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys',\n '../utils'\n], function ($, KEYS, Utils) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = Utils.GetData($clear[0], 'data');\n\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__clear').remove();\n this.$selection[0].classList.remove('select2-selection--clearable');\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var rendered = this.$selection.find('.select2-selection__rendered')[0];\n var selectionId = null;\n if(rendered != null) {\n selectionId = rendered.getAttribute('id');\n }\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n\n var $remove = $(\n ''\n );\n $remove[0].setAttribute('title', removeAll());\n $remove[0].setAttribute('aria-label', removeAll());\n $remove[0].setAttribute('aria-describedby', selectionId);\n Utils.StoreData($remove[0], 'data', data);\n\n this.$selection.prepend($remove);\n this.$selection[0].classList.add('select2-selection--clearable');\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var searchLabel = this.options.get('translations').get('search');\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('textarea');\n\n this.$search[0].autocomplete = this.options.get('autocomplete');\n this.$search[0].setAttribute('aria-label', searchLabel());\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n $rendered.append(this.$searchContainer);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n var selectionId = container.id + '-container';\n\n decorated.call(this, container, $container);\n\n self.$search[0].setAttribute('aria-describedby', selectionId);\n\n container.on('open', function () {\n self.$search[0].setAttribute('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.resizeSearch();\n self.$search[0].removeAttribute('aria-controls');\n self.$search[0].removeAttribute('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search[0].disabled = false;\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search[0].disabled = true;\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search[0]\n .setAttribute('aria-activedescendant', params.data._resultId);\n } else {\n self.$search[0].removeAttribute('aria-activedescendant');\n }\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$selection\n .find('.select2-selection__choice').last();\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search[0]\n .setAttribute('tabindex', this.$selection[0].getAttribute('tabindex'));\n this.$selection[0].setAttribute('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search[0].setAttribute('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search[0].setAttribute('placeholder', '');\n\n decorated.call(this, data);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '100%';\n\n if (this.$search[0].getAttribute('placeholder') === '') {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/selectionCss',[\n '../utils'\n], function (Utils) {\n function SelectionCSS () { }\n\n SelectionCSS.prototype.render = function (decorated) {\n var $selection = decorated.call(this);\n\n var selectionCssClass = this.options.get('selectionCssClass') || '';\n\n if (selectionCssClass.indexOf(':all:') !== -1) {\n selectionCssClass = selectionCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);\n }\n\n selectionCssClass.trim().split(' ').forEach(function(cssClass) {\n if(cssClass.length > 0) {\n $selection[0].classList.add(cssClass);\n }\n });\n\n return $selection;\n };\n\n return SelectionCSS;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting',\n 'clear', 'clearing'\n ];\n\n var preventableEvents = [\n 'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n ];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if (relayEvents.indexOf(name) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if (preventableEvents.indexOf(name) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'require'\n], function (require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = Object.assign({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u0152': 'OE',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u0153': 'oe',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03CE': '\\u03C9',\n '\\u03C2': '\\u03C3',\n '\\u2019': '\\''\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var self = this;\n\n var data = Array.prototype.map.call(\n this.$element[0].querySelectorAll(':checked'),\n function (selectedElement) {\n return self.item($(selectedElement));\n }\n );\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if (\n data.element != null && data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = true;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n if (this.$element[0].multiple) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if (val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element[0].multiple) {\n return;\n }\n\n data.selected = false;\n\n if (\n data.element != null &&\n data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = false;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n if (\n this.tagName.toLowerCase() !== 'option' &&\n this.tagName.toLowerCase() !== 'optgroup'\n ) {\n return;\n }\n\n var $option = $(this);\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n this.$element.append($options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n Utils.StoreData(option, 'data', normalizedData);\n\n return $(option);\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n var option = $option[0];\n\n if (option.tagName.toLowerCase() === 'option') {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option[0].disabled,\n selected: $option[0].selected,\n title: $option[0].title\n };\n } else if (option.tagName.toLowerCase() === 'optgroup') {\n data = {\n text: $option[0].label,\n children: [],\n title: $option[0].title\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n Utils.StoreData($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n if (item.children) {\n item.children = item.children.map(\n SelectAdapter.prototype._normalizeItem\n );\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if (existingIds.indexOf(item.id) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n $option.append($children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if (typeof this._request.abort === 'function') {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (results && results.results && Array.isArray(results.results)) {\n results.results = results.results.map(\n AjaxAdapter.prototype._normalizeItem\n );\n } else {\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ($request && 'status' in $request &&\n ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if (Array.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option[0].setAttribute('data-select2-tag', 'true');\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n if (params.term == null) {\n return null;\n }\n\n var term = params.term.trim();\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option[0].setAttribute('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if (separators.indexOf(termChar) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind =\n function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected =\n function (_, successCallback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown[0].setAttribute('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery'\n], function ($) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var searchLabel = this.options.get('translations').get('search');\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n this.$search[0].autocomplete = this.options.get('autocomplete');\n this.$search[0].setAttribute('aria-label', searchLabel());\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search[0].setAttribute('tabindex', 0);\n self.$search[0].setAttribute('aria-controls', resultsId);\n\n self.$search.trigger('focus');\n\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n\n container.on('close', function () {\n self.$search[0].setAttribute('tabindex', -1);\n self.$search[0].removeAttribute('aria-controls');\n self.$search[0].removeAttribute('aria-activedescendant');\n\n self.$search.val('');\n self.$search.trigger('blur');\n });\n\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer[0].classList.remove('select2-search--hide');\n } else {\n self.$searchContainer[0].classList.add('select2-search--hide');\n }\n }\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search[0]\n .setAttribute('aria-activedescendant', params.data._resultId);\n } else {\n self.$search[0].removeAttribute('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder !== 'object') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n this.$loadingMore[0]\n );\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top +\n this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top +\n this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n // Must bind after the results handlers to ensure correct sizing\n self._bindContainerResultHandlers(container);\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown[0].setAttribute('class', $container[0].getAttribute('class'));\n\n $dropdown[0].classList.remove('select2');\n $dropdown[0].classList.add('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers =\n function (decorated, container) {\n\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:message', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('select', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('unselect', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown[0].classList\n .contains('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown[0].classList\n .contains('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calculating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positioned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if (\n $.contains(document.body, $offsetParent[0]) ||\n $offsetParent[0].isConnected\n ) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown[0].classList.remove('select2-dropdown--below');\n this.$dropdown[0].classList.remove('select2-dropdown--above');\n this.$dropdown[0].classList.add('select2-dropdown--' + newDirection);\n\n this.$container[0].classList.remove('select2-container--below');\n this.$container[0].classList.remove('select2-container--above');\n this.$container[0].classList.add('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n '../utils'\n], function (Utils) {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/dropdown/dropdownCss',[\n '../utils'\n], function (Utils) {\n function DropdownCSS () { }\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);\n }\n\n dropdownCssClass.trim().split(' ').forEach(function(cssClass) {\n if(cssClass.length > 0) {\n $dropdown[0].classList.add(cssClass);\n }\n });\n\n return $dropdown;\n };\n\n return DropdownCSS;\n});\n\nS2.define('select2/dropdown/tagsSearchHighlight',[\n '../utils'\n], function (Utils) {\n function TagsSearchHighlight () { }\n\n TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {\n var $options = this.$results\n .find(\n '.select2-results__option--selectable' +\n ':not(.select2-results__option--selected)'\n );\n\n if ($options.length > 0) {\n var $firstOption = $options.first();\n var data = Utils.GetData($firstOption[0], 'data');\n var firstElement = data.element;\n\n if (firstElement && firstElement.getAttribute) {\n if (firstElement.getAttribute('data-select2-tag') === 'true') {\n $firstOption.trigger('mouseenter');\n\n return;\n }\n }\n }\n\n decorated.call(this);\n };\n\n return TagsSearchHighlight;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n },\n removeAllItems: function () {\n return 'Remove all items';\n },\n removeItem: function () {\n return 'Remove item';\n },\n search: function() {\n return 'Search';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/selectionCss',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n './dropdown/dropdownCss',\n './dropdown/tagsSearchHighlight',\n\n './i18n/en'\n], function ($,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, SelectionCSS, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n DropdownCSS, TagsSearchHighlight,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n\n if (options.tags) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n TagsSearchHighlight\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (options.dropdownCssClass != null) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (options.selectionCssClass != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n options.language = this._resolveLanguage(options.language);\n\n // Always fall back to English since it will always be complete\n options.language.push('en');\n\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n\n options.translations = this._processTranslations(\n options.language,\n options.debug\n );\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if (params.term == null || params.term.trim() === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdLanguageBase: './i18n/',\n autocomplete: 'off',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element[0].lang;\n var elementClosest = $element.closest('[lang]');\n var parentLanguage = elementClosest[0] ? elementClosest[0].lang : null;\n\n var languages = Array.prototype.concat.call(\n this._resolveLanguage(elementLanguage),\n this._resolveLanguage(optionLanguage),\n this._resolveLanguage(defaultLanguage),\n this._resolveLanguage(parentLanguage)\n );\n\n options.language = languages;\n\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!Array.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + language + '\" could ' +\n 'not be automatically loaded. A fallback will be used instead.'\n );\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n var camelKey = key.replace(/-([a-z])/g, upperCaseLetter);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'jquery',\n './defaults',\n './utils'\n], function ($, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e[0].multiple;\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e[0].disabled;\n }\n\n if (this.options.autocomplete == null && $e[0].autocomplete) {\n this.options.autocomplete = $e[0].autocomplete;\n }\n\n if (this.options.dir === null) {\n var dirValue = $e[0].getAttribute('dir');\n\n if (dirValue) {\n this.options.dir = dirValue;\n } else {\n var closestDirValue = $e.closest('[dir]').getAttribute('dir');\n\n if (closestDirValue) {\n this.options.dir = closestDirValue;\n } else {\n this.options.dir = 'ltr';\n }\n }\n }\n\n $e[0].disabled = this.options.disabled;\n $e[0].multiple = this.options.multiple;\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e[0].setAttribute('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n\n // Pre-load all of the attributes which are prefixed with `data-`\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length);\n\n // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n var dataValue = Utils.GetData($e[0], dataName);\n\n // camelCase the attribute name to match the spec\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n // Store the data attribute contents into the dataset since\n dataset[camelDataName] = dataValue;\n }\n }\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n }\n\n // Prefer our internal data cache if it exists\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if (excludedData.indexOf(key) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element[0].getAttribute('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element[0].setAttribute('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element[0].classList.add('select2-hidden-accessible');\n $element[0].setAttribute('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this);\n\n // Ensure backwards compatibility with $element.data('select2').\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n var element = $element[0];\n\n if (element != null && element.getAttribute('id') != null) {\n id = element.getAttribute('id');\n } else if (element != null && element.getAttribute('name') != null) {\n id = element.getAttribute('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element[0].getAttribute('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n this._observer = new window.MutationObserver(function (mutations) {\n self._syncA();\n self._syncS(mutations);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if (nonRelayEvents.indexOf(name) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container[0].classList.add('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container[0].classList.remove('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container[0].classList.remove('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container[0].classList.add('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container[0].classList.remove('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) {\n self.close(evt);\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER || key === KEYS.TAB) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element[0].disabled);\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (mutations) {\n var self = this;\n\n if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n return true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n return true;\n } else if (Array.isArray(mutations)) {\n return mutations.some(function (mutation) {\n return self._isChangeMutation(mutation);\n });\n }\n\n return false;\n };\n\n Select2.prototype._syncSubtree = function (mutations) {\n var changed = this._isChangeMutation(mutations);\n var self = this;\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', { originalEvent : evt });\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container[0].classList.contains('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container[0].classList.contains('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container[0].classList.add('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element[0].disabled' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element[0].disabled = disabled;\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if (Array.isArray(newVal)) {\n newVal = newVal.map(function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n Utils.RemoveData(this.$container[0]);\n this.$container.remove();\n\n this._observer.disconnect();\n this._observer = null;\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element[0].setAttribute('tabindex',\n Utils.GetData(this.$element[0], 'old-tabindex'));\n\n this.$element[0].classList.remove('select2-hidden-accessible');\n this.$element[0].setAttribute('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container[0].setAttribute('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container[0].classList\n .add('select2-container--' + this.options.get('theme'));\n\n Utils.StoreData($container[0], 'element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery-mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults',\n './select2/utils'\n], function ($, _, Select2, Defaults, Utils) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if (thisMethods.indexOf(options) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","\"use strict\";\n\n// Bundlers are able to synchronously require an ESM module from a CommonJS one.\nconst { jQuery } = require( \"../../dist-module/jquery.module.js\" );\nmodule.exports = jQuery;\n","/*!\n * jQuery JavaScript Library v4.0.0\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.com/license/\n *\n * Date: 2026-01-18T00:20Z\n */\n// For ECMAScript module environments where a proper `window`\n// is present, execute the factory and get jQuery.\nfunction jQueryFactory( window, noGlobal ) {\n\nif ( typeof window === \"undefined\" || !window.document ) {\n\tthrow new Error( \"jQuery requires a window with a document\" );\n}\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\n// Support: IE 11+\n// IE doesn't have Array#flat; provide a fallback.\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\n// [[Class]] -> type pairs\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\n// All support tests are defined in their respective modules.\nvar support = {};\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\treturn typeof obj === \"object\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n\nfunction isWindow( obj ) {\n\treturn obj != null && obj === obj.window;\n}\n\nfunction isArrayLike( obj ) {\n\n\tvar length = !!obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( typeof obj === \"function\" || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\nvar document$1 = window.document;\n\nvar preservedScriptAttributes = {\n\ttype: true,\n\tsrc: true,\n\tnonce: true,\n\tnoModule: true\n};\n\nfunction DOMEval( code, node, doc ) {\n\tdoc = doc || document$1;\n\n\tvar i,\n\t\tscript = doc.createElement( \"script\" );\n\n\tscript.text = code;\n\tfor ( i in preservedScriptAttributes ) {\n\t\tif ( node && node[ i ] ) {\n\t\t\tscript[ i ] = node[ i ];\n\t\t}\n\t}\n\n\tif ( doc.head.appendChild( script ).parentNode ) {\n\t\tscript.parentNode.removeChild( script );\n\t}\n}\n\nvar version = \"4.0.0\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t}\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && typeof target !== \"function\" ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Note: an element does not contain itself\n\tcontains: function( a, b ) {\n\t\tvar bup = b && b.parentNode;\n\n\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// IE doesn't have `contains` on SVG.\n\t\t\ta.contains ?\n\t\t\t\ta.contains( bup ) :\n\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t) );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction nodeName( elem, name ) {\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n}\n\nvar pop = arr.pop;\n\n// https://www.w3.org/TR/css3-selectors/#whitespace\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\nvar isIE = document$1.documentMode;\n\nvar rbuggyQSA = isIE && new RegExp(\n\n\t// Support: IE 9 - 11+\n\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\":enabled|:disabled|\" +\n\n\t// Support: IE 11+\n\t// IE 11 doesn't find elements on a `[name='']` query in some cases.\n\t// Adding a temporary attribute to the document before the selection works\n\t// around the issue.\n\t\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\twhitespace + \"*(?:''|\\\"\\\")\"\n\n);\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\nvar identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\";\n\nvar rleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" +\n\twhitespace + \")\" + whitespace + \"*\" );\n\nvar rdescend = new RegExp( whitespace + \"|>\" );\n\nvar rsibling = /[+~]/;\n\nvar documentElement$1 = document$1.documentElement;\n\n// Support: IE 9 - 11+\n// IE requires a prefix.\nvar matches = documentElement$1.matches || documentElement$1.msMatchesSelector;\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > jQuery.expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\nvar attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t// Operator (capture 2)\n\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\twhitespace + \"*\\\\]\";\n\nvar pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t// 2. simple (capture 6)\n\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t// 3. anything else (capture 2)\n\t\".*\" +\n\t\")\\\\)|)\";\n\nvar filterMatchExpr = {\n\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\tATTR: new RegExp( \"^\" + attributes ),\n\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\tCHILD: new RegExp(\n\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" )\n};\n\nvar rpseudo = new RegExp( pseudos );\n\n// CSS escapes\n// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\nvar runescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t};\n\nfunction unescapeSelector( sel ) {\n\treturn sel.replace( runescape, funescape );\n}\n\nfunction selectorError( msg ) {\n\tjQuery.error( \"Syntax error, unrecognized expression: \" + msg );\n}\n\nvar rcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" );\n\nvar tokenCache = createCache();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = jQuery.expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in filterMatchExpr ) {\n\t\t\tif ( ( match = jQuery.expr.match[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tselectorError( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nvar preFilter = {\n\tATTR: function( match ) {\n\t\tmatch[ 1 ] = unescapeSelector( match[ 1 ] );\n\n\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\tmatch[ 3 ] = unescapeSelector( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" );\n\n\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t}\n\n\t\treturn match.slice( 0, 4 );\n\t},\n\n\tCHILD: function( match ) {\n\n\t\t/* matches from filterMatchExpr[\"CHILD\"]\n\t\t\t1 type (only|nth|...)\n\t\t\t2 what (child|of-type)\n\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t5 sign of xn-component\n\t\t\t6 x of xn-component\n\t\t\t7 sign of y-component\n\t\t\t8 y of y-component\n\t\t*/\n\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t// nth-* requires argument\n\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\tselectorError( match[ 0 ] );\n\t\t\t}\n\n\t\t\t// numeric x and y parameters for jQuery.expr.filter.CHILD\n\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t);\n\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t// other types prohibit arguments\n\t\t} else if ( match[ 3 ] ) {\n\t\t\tselectorError( match[ 0 ] );\n\t\t}\n\n\t\treturn match;\n\t},\n\n\tPSEUDO: function( match ) {\n\t\tvar excess,\n\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\tif ( filterMatchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Accept quoted arguments as-is\n\t\tif ( match[ 3 ] ) {\n\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t// Strip excess characters from unquoted arguments\n\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t// Get excess from tokenize (recursively)\n\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t// advance to the next closing parenthesis\n\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) -\n\t\t\t\tunquoted.length ) ) {\n\n\t\t\t// excess is a negative index\n\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t}\n\n\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\treturn match.slice( 0, 3 );\n\t}\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nfunction access( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( typeof value !== \"function\" ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n}\n\n// Only count HTML whitespace\n// Other whitespace should count in values\n// https://infra.spec.whatwg.org/#ascii-whitespace\nvar rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ||\n\n\t\t\t\t// For compat with previous handling of boolean attributes,\n\t\t\t\t// remove when `false` passed. For ARIA attributes -\n\t\t\t\t// many of which recognize a `\"false\"` value - continue to\n\t\t\t\t// set the `\"false\"` value as jQuery <4 did.\n\t\t\t\t( value === false && name.toLowerCase().indexOf( \"aria-\" ) !== 0 ) ) {\n\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = elem.getAttribute( name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Support: IE <=11+\n// An input loses its value after becoming a radio\nif ( isIE ) {\n\tjQuery.attrHooks.type = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( value === \"radio\" && nodeName( elem, \"input\" ) ) {\n\t\t\t\tvar val = elem.value;\n\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\tif ( val ) {\n\t\t\t\t\telem.value = val;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t};\n}\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nvar sort = arr.sort;\n\nvar splice = arr.splice;\n\nvar hasDuplicate;\n\n// Document order sorting\nfunction sortOrder( a, b ) {\n\n\t// Flag for duplicate removal\n\tif ( a === b ) {\n\t\thasDuplicate = true;\n\t\treturn 0;\n\t}\n\n\t// Sort on method existence if only one input has compareDocumentPosition\n\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\tif ( compare ) {\n\t\treturn compare;\n\t}\n\n\t// Calculate position if both inputs belong to the same document\n\t// Support: IE 11+\n\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\ta.compareDocumentPosition( b ) :\n\n\t\t// Otherwise we know they are disconnected\n\t\t1;\n\n\t// Disconnected nodes\n\tif ( compare & 1 ) {\n\n\t\t// Choose the first element that is related to the document\n\t\t// Support: IE 11+\n\t\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tif ( a == document$1 || a.ownerDocument == document$1 &&\n\t\t\tjQuery.contains( document$1, a ) ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\t// Support: IE 11+\n\t\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tif ( b == document$1 || b.ownerDocument == document$1 &&\n\t\t\tjQuery.contains( document$1, b ) ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\t// Maintain original order\n\t\treturn 0;\n\t}\n\n\treturn compare & 4 ? -1 : 1;\n}\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\thasDuplicate = false;\n\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nvar i,\n\toutermostContext,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\n\t// Instance-specific data\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\n\t// Regular expressions\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = jQuery.extend( {\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t}, filterMatchExpr ),\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr$1 = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr$1.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn results;\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tjQuery.contains( context, elem ) ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// Outside of IE, if we're not changing the context we can\n\t\t\t\t\t// use :scope instead of an ID.\n\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || isIE ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = jQuery.expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === jQuery.expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ jQuery.expando ] = true;\n\treturn fn;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : document$1;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+\n\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 ) {\n\t\treturn;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: IE 9 - 11+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (see trac-13936)\n\t// Support: IE 11+\n\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( isIE && document$1 != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\treturn matches.call( elem, expr );\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\njQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tfind: {\n\t\tID: function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t},\n\n\t\tTAG: function( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t},\n\n\t\tCLASS: function( className, context ) {\n\t\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\t\treturn context.getElementsByClassName( className );\n\t\t\t}\n\t\t}\n\t},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: preFilter,\n\n\tfilter: {\n\t\tID: function( id ) {\n\t\t\tvar attrId = unescapeSelector( id );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t},\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = unescapeSelector( nodeNameSelector ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = jQuery.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ jQuery.expando ] ||\n\t\t\t\t\t\t\t\t( parent[ jQuery.expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ jQuery.expando ] ||\n\t\t\t\t\t\t\t\t\t( elem[ jQuery.expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ jQuery.expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ jQuery.expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar fn = jQuery.expr.pseudos[ pseudo ] ||\n\t\t\t\tjQuery.expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\tselectorError( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ jQuery.expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ jQuery.expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = unescapeSelector( text );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tselectorError( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = unescapeSelector( lang ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( isIE && elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !jQuery.expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\";\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\njQuery.expr.pseudos.nth = jQuery.expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tjQuery.expr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tjQuery.expr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = jQuery.expr.pseudos;\njQuery.expr.setFilters = new setFilters();\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ jQuery.expando ] || ( elem[ jQuery.expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ jQuery.expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ jQuery.expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = jQuery.expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || jQuery.expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = jQuery.expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = jQuery.expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ jQuery.expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( jQuery.expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && jQuery.expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 );\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+\n\t\t\t\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\tfor ( ; ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t// IE sometimes throws a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ jQuery.expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML &&\n\t\t\t\tjQuery.expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( jQuery.expr.find.ID(\n\t\t\t\tunescapeSelector( token.matches[ 0 ] ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( jQuery.expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = jQuery.expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\tunescapeSelector( token.matches[ 0 ] ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// Initialize against the default document\nsetDocument();\n\njQuery.find = find;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfunction dir( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n}\n\nfunction siblings( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n}\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n// rsingleTag matches a string consisting of a single HTML element with no attributes\n// and captures the element's name\nvar rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n\nfunction isObviousHtml( input ) {\n\treturn input[ 0 ] === \"<\" &&\n\t\tinput[ input.length - 1 ] === \">\" &&\n\t\tinput.length >= 3;\n}\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( typeof qualifier === \"function\" ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n// Initialize a jQuery object\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\tif ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( typeof selector === \"function\" ) {\n\t\t\treturn rootjQuery.ready !== undefined ?\n\t\t\t\trootjQuery.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\n\t\t} else {\n\n\t\t\t// Handle obvious HTML strings\n\t\t\tmatch = selector + \"\";\n\t\t\tif ( isObviousHtml( match ) ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip\n\t\t\t\t// the regex check. This also handles browser-supported HTML wrappers\n\t\t\t\t// like TrustedHTML.\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t// Handle HTML strings or selectors\n\t\t\t} else if ( typeof selector === \"string\" ) {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t} else {\n\t\t\t\treturn jQuery.makeArray( selector, this );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\t// Note: match[1] may be a string or a TrustedHTML wrapper\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document$1,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( typeof this[ match ] === \"function\" ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document$1.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr) & $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\t\t}\n\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document$1 );\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11+\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( typeof arg === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && typeof( method = value.promise ) === \"function\" ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && typeof( method = value.then ) === \"function\" ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\t\treject( value );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tcatch: function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = typeof fns[ tuple[ 4 ] ] === \"function\" &&\n\t\t\t\t\t\t\t\tfns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && typeof returned.promise === \"function\" ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( typeof then === \"function\" ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\ttypeof onProgress === \"function\" ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\ttypeof onFulfilled === \"function\" ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\ttypeof onRejected === \"function\" ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\ttypeof( resolveValues[ i ] && resolveValues[ i ].then ) === \"function\" ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\tif ( error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn(\n\t\t\t\"jQuery.Deferred exception\",\n\t\t\terror,\n\t\t\tasyncError\n\t\t);\n\t}\n};\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document$1, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument$1.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\nif ( document$1.readyState !== \"loading\" ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument$1.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n// Matches dashed string for camelizing\nvar rdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase\nfunction camelCase( string ) {\n\treturn string.replace( rdashAlpha, fcamelCase );\n}\n\n/**\n * Determines whether an object can have data\n */\nfunction acceptData( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n}\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = Object.create( null );\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn value;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\n\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.set( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.set( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\n\nvar pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\n// isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n// through the CSS cascade), which is useful in deciding whether or not to make it visible.\n// It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n// * A hidden ancestor does not force an element to be classified as hidden.\n// * Being disconnected from the document does not force an element to be classified as hidden.\n// These differences improve the behavior of .toggle() et al. when applied to elements that are\n// detached or contained within hidden ancestors (gh-2404, gh-2863).\nfunction isHiddenWithinTree( elem, el ) {\n\n\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t// in that case, element will be second argument\n\telem = el || elem;\n\n\t// Inline style trumps all\n\treturn elem.style.display === \"none\" ||\n\t\telem.style.display === \"\" &&\n\t\tjQuery.css( elem, \"display\" ) === \"none\";\n}\n\nvar ralphaStart = /^[a-z]/,\n\n\t// The regex visualized:\n\t//\n\t// /----------\\\n\t// | | /-------\\\n\t// | / Top \\ | | |\n\t// /--- Border ---+-| Right |-+---+- Width -+---\\\n\t// | | Bottom | |\n\t// | \\ Left / |\n\t// | |\n\t// | /----------\\ |\n\t// | /-------------\\ | | |- END\n\t// | | | | / Top \\ | |\n\t// | | / Margin \\ | | | Right | | |\n\t// |---------+-| |-+---+-| Bottom |-+----|\n\t// | \\ Padding / \\ Left / |\n\t// BEGIN -| |\n\t// | /---------\\ |\n\t// | | | |\n\t// | | / Min \\ | / Width \\ |\n\t// \\--------------+-| |-+---| |---/\n\t// \\ Max / \\ Height /\n\trautoPx = /^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;\n\nfunction isAutoPx( prop ) {\n\n\t// The first test is used to ensure that:\n\t// 1. The prop starts with a lowercase letter (as we uppercase it for the second regex).\n\t// 2. The prop is not empty.\n\treturn ralphaStart.test( prop ) &&\n\t\trautoPx.test( prop[ 0 ].toUpperCase() + prop.slice( 1 ) );\n}\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( isAutoPx( prop ) ? \"px\" : \"\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( !isAutoPx( prop ) || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54 - 66+\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/;\n\n// Convert dashed to camelCase, handle vendor prefixes.\n// Used by the css & effects modules.\n// Support: IE <=9 - 11+\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction cssCamelCase( string ) {\n\treturn camelCase( string.replace( rmsPrefix, \"ms-\" ) );\n}\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\n\nvar isAttached = function( elem ) {\n\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t},\n\tcomposed = { composed: true };\n\n// Support: IE 9 - 11+\n// Check attachment across shadow DOM boundaries when possible (gh-3504).\n// Provide a fallback for browsers without Shadow DOM v1 support.\nif ( !documentElement$1.getRootNode ) {\n\tisAttached = function( elem ) {\n\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t};\n}\n\n// rtagName captures the name from the first start tag in a string of HTML\n// https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n// https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\nvar rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n\nvar wrapMap = {\n\n\t// Table parts need to be wrapped with `` or they're\n\t// stripped to their contents when put in a div.\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do, so we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ \"table\" ],\n\tcol: [ \"colgroup\", \"table\" ],\n\ttr: [ \"tbody\", \"table\" ],\n\ttd: [ \"tr\", \"tbody\", \"table\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11+\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\n\t\t// Use slice to snapshot the live collection from gEBTN\n\t\tret = arr.slice.call( context.getElementsByTagName( tag || \"*\" ) );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\nvar rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" && ( elem.nodeType || isArrayLike( elem ) ) ) {\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || arr;\n\n\t\t\t\t// Create wrappers & descend into them.\n\t\t\t\tj = wrap.length;\n\t\t\t\twhile ( --j > -1 ) {\n\t\t\t\t\ttmp = tmp.appendChild( context.createElement( wrap[ j ] ) );\n\t\t\t\t}\n\n\t\t\t\ttmp.innerHTML = jQuery.htmlPrefilter( elem );\n\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = typeof value === \"function\";\n\n\tif ( valueIsFunction ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.get( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce,\n\t\t\t\t\t\t\t\t\tcrossOrigin: node.crossOrigin\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent, node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nvar rcheckableType = /^(?:checkbox|radio)$/i;\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement$1, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: Firefox <=42 - 66+\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11+\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: typeof hook === \"function\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: jQuery.extend( Object.create( null ), {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\t\t\t\tif ( event.result !== undefined ) {\n\n\t\t\t\t\t// Setting `event.originalEvent.returnValue` in modern\n\t\t\t\t\t// browsers does the same as just calling `preventDefault()`,\n\t\t\t\t\t// the browsers ignore the value anyway.\n\t\t\t\t\t// Incidentally, IE 11 is the only browser from our supported\n\t\t\t\t\t// ones which respects the value returned from a `beforeunload`\n\t\t\t\t\t// handler attached by `addEventListener`; other browsers do\n\t\t\t\t\t// so only for inline handlers, so not setting the value\n\t\t\t\t\t// directly shouldn't reduce any functionality.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} )\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\t// This controller function is invoked under multiple circumstances,\n\t\t\t// differentiated by the stored value in `saved`:\n\t\t\t// 1. For an outer synthetic `.trigger()`ed event (detected by\n\t\t\t// `event.isTrigger & 1` and non-array `saved`), it records arguments\n\t\t\t// as an array and fires an [inner] native event to prompt state\n\t\t\t// changes that should be observed by registered listeners (such as\n\t\t\t// checkbox toggling and focus updating), then clears the stored value.\n\t\t\t// 2. For an [inner] native event (detected by `saved` being\n\t\t\t// an array), it triggers an inner synthetic event, records the\n\t\t\t// result, and preempts propagation to further jQuery listeners.\n\t\t\t// 3. For an inner synthetic event (detected by `event.isTrigger & 1` and\n\t\t\t// array `saved`), it prevents double-propagation of surrogate events\n\t\t\t// but otherwise allows everything to proceed (particularly including\n\t\t\t// further listeners).\n\t\t\t// Possible `saved` data shapes: `[...], `{ value }`, `false`.\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object),\n\t\t\t\t\t// so this array will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is\n\t\t\t\t\t\t// blurred by clicking outside of it, it invokes the handler\n\t\t\t\t\t\t// synchronously. If that handler calls `.remove()` on\n\t\t\t\t\t\t// the element, the data is cleared, leaving `result`\n\t\t\t\t\t\t// undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling\n\t\t\t\t// surrogate (focus or blur), assume that the surrogate already\n\t\t\t\t// propagated from triggering the native event and prevent that\n\t\t\t\t// from happening again here.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order.\n\t\t\t// Fire an inner synthetic event with the original arguments.\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\t\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\tthis.target = src.target;\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\t// Support: IE 11+\n\t// Attach a single focusin/focusout handler on the document while someone wants focus/blur.\n\t// This is because the former are synchronous in IE while the latter are async. In other\n\t// browsers, all those handlers are invoked synchronously.\n\tfunction focusMappedHandler( nativeEvent ) {\n\n\t\t// `eventHandle` would already wrap the event, but we need to change the `type` here.\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\tevent.isSimulated = true;\n\n\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t// invoking the handler at the lower level.\n\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t// by this point.\n\t\t\tdataPriv.get( this, \"handle\" )( event );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( isIE ) {\n\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tif ( isIE ) {\n\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\nvar\n\n\t// Support: IE <=10 - 11+\n\t// In IE using regex groups here causes severe slowdowns.\n\trnoInnerhtml = / 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\t\t\tpush.apply( ret, elems );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\nfunction getStyles( elem ) {\n\n\t// Support: IE <=11+ (trac-14150)\n\t// In IE popup's `window` is the opener window which makes `window.getComputedStyle( elem )`\n\t// break. Using `elem.ownerDocument.defaultView` avoids the issue.\n\tvar view = elem.ownerDocument.defaultView;\n\n\t// `document.implementation.createHTMLDocument( \"\" )` has a `null` `defaultView`\n\t// property; check `defaultView` truthiness to fallback to window in such a case.\n\tif ( !view ) {\n\t\tview = window;\n\t}\n\n\treturn view.getComputedStyle( elem );\n}\n\n// A method for quickly swapping in/out CSS properties to get correct calculations.\nfunction swap( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n}\n\nfunction curCSS( elem, name, computed ) {\n\tvar ret,\n\t\tisCustomProp = rcustomProp.test( name );\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for `.css('--customProperty')` (gh-3144)\n\tif ( computed ) {\n\n\t\t// A fallback to direct property access is needed as `computed`, being\n\t\t// the output of `getComputedStyle`, contains camelCased keys and\n\t\t// `getPropertyValue` requires kebab-case ones.\n\t\t//\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105 - 135+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document$1.createElement( \"div\" ).style;\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped vendor prefixed property\nfunction finalPropName( name ) {\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorPropName( name ) || name;\n}\n\nvar reliableTrDimensionsVal, reliableColDimensionsVal,\n\ttable = document$1.createElement( \"table\" );\n\n// Executing table tests requires only one layout, so they're executed\n// at the same time to save the second computation.\nfunction computeTableStyleTests() {\n\tif (\n\n\t\t// This is a singleton, we need to execute it only once\n\t\t!table ||\n\n\t\t// Finish early in limited (non-browser) environments\n\t\t!table.style\n\t) {\n\t\treturn;\n\t}\n\n\tvar trStyle,\n\t\tcol = document$1.createElement( \"col\" ),\n\t\ttr = document$1.createElement( \"tr\" ),\n\t\ttd = document$1.createElement( \"td\" );\n\n\ttable.style.cssText = \"position:absolute;left:-11111px;\" +\n\t\t\"border-collapse:separate;border-spacing:0\";\n\ttr.style.cssText = \"box-sizing:content-box;border:1px solid;height:1px\";\n\ttd.style.cssText = \"height:9px;width:9px;padding:0\";\n\n\tcol.span = 2;\n\n\tdocumentElement$1\n\t\t.appendChild( table )\n\t\t.appendChild( col )\n\t\t.parentNode\n\t\t.appendChild( tr )\n\t\t.appendChild( td )\n\t\t.parentNode\n\t\t.appendChild( td.cloneNode( true ) );\n\n\t// Don't run until window is visible\n\tif ( table.offsetWidth === 0 ) {\n\t\tdocumentElement$1.removeChild( table );\n\t\treturn;\n\t}\n\n\ttrStyle = window.getComputedStyle( tr );\n\n\t// Support: Firefox 135+\n\t// Firefox always reports computed width as if `span` was 1.\n\t// Support: Safari 18.3+\n\t// In Safari, computed width for columns is always 0.\n\t// In both these browsers, using `offsetWidth` solves the issue.\n\t// Support: IE 11+\n\t// In IE, `` computed width is `\"auto\"` unless `width` is set\n\t// explicitly via CSS so measurements there remain incorrect. Because of\n\t// the lack of a proper workaround, we accept this limitation, treating\n\t// IE as passing the test.\n\treliableColDimensionsVal = isIE || Math.round( parseFloat(\n\t\twindow.getComputedStyle( col ).width )\n\t) === 18;\n\n\t// Support: IE 10 - 11+\n\t// IE misreports `getComputedStyle` of table rows with width/height\n\t// set in CSS while `offset*` properties report correct values.\n\t// Support: Firefox 70 - 135+\n\t// Only Firefox includes border widths\n\t// in computed dimensions for table rows. (gh-4529)\n\treliableTrDimensionsVal = Math.round( parseFloat( trStyle.height ) +\n\t\tparseFloat( trStyle.borderTopWidth ) +\n\t\tparseFloat( trStyle.borderBottomWidth ) ) === tr.offsetHeight;\n\n\tdocumentElement$1.removeChild( table );\n\n\t// Nullify the table so it wouldn't be stored in the memory;\n\t// it will also be a sign that checks were already performed.\n\ttable = null;\n}\n\njQuery.extend( support, {\n\treliableTrDimensions: function() {\n\t\tcomputeTableStyleTests();\n\t\treturn reliableTrDimensionsVal;\n\t},\n\n\treliableColDimensions: function() {\n\t\tcomputeTableStyleTests();\n\t\treturn reliableColDimensionsVal;\n\t}\n} );\n\nvar cssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = isIE || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\tif (\n\t\t(\n\n\t\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\t\tval === \"auto\" ||\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t\t\t// In those cases, the computed value can be trusted to be border-box.\n\t\t\t( isIE && isBorderBox ) ||\n\n\t\t\t( !support.reliableColDimensions() && nodeName( elem, \"col\" ) ) ||\n\n\t\t\t( !support.reliableTrDimensions() && nodeName( elem, \"tr\" ) )\n\t\t) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = cssCamelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If the value is a number, add `px` for certain CSS properties\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( isAutoPx( origName ) ? \"px\" : \"\" );\n\t\t\t}\n\n\t\t\t// Support: IE <=9 - 11+\n\t\t\t// background-* props of a cloned element affect the source element (trac-8908)\n\t\t\tif ( isIE && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = cssCamelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Elements with `display: none` can have dimension info if\n\t\t\t\t// we invisibly show them.\n\t\t\t\treturn jQuery.css( elem, \"display\" ) === \"none\" ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tisBorderBox = extra &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( isAutoPx( prop ) ? \"px\" : \"\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document$1.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, 13 );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.set( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line no-loop-func\n\t\t\tanim.done( function() {\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = cssCamelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\tpercent = 1 - ( remaining / animation.duration || 0 ),\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( typeof result.stop === \"function\" ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( typeof animation.opts.start === \"function\" ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( typeof props === \"function\" ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || easing ||\n\t\t\ttypeof speed === \"function\" && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && typeof easing !== \"function\" && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( typeof opt.old === \"function\" ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = elem.getAttribute( \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\n\t\t\t\t\t// href-less anchor's `tabIndex` property value is `0` and\n\t\t\t\t\t// the `tabindex` attribute value: `null`. We want `-1`.\n\t\t\t\t\trclickable.test( elem.nodeName ) && elem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11+\n// Accessing the selectedIndex property forces the browser to respect\n// setting selected on the option. The getter ensures a default option\n// is selected when in an optgroup. ESLint rule \"no-unused-expressions\"\n// is disabled for this code since it considers such accessions noop.\nif ( isIE ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n// Strip and collapse whitespace according to HTML spec\n// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\nfunction stripAndCollapse( value ) {\n\tvar tokens = value.match( rnothtmlwhite ) || [];\n\treturn tokens.join( \" \" );\n}\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( typeof value === \"function\" ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( typeof value === \"function\" ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self;\n\n\t\tif ( typeof value === \"function\" ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = typeof value === \"function\";\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\tif ( option.selected &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\tif ( ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery( option ).val(), values ) > -1\n\t\t\t\t\t) ) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\nif ( isIE ) {\n\tjQuery.valHooks.option = {\n\t\tget: function( elem ) {\n\n\t\t\tvar val = elem.getAttribute( \"value\" );\n\t\t\treturn val != null ?\n\t\t\t\tval :\n\n\t\t\t\t// Support: IE <=10 - 11+\n\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t}\n\t};\n}\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n} );\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document$1 ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document$1;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document$1 ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && typeof elem[ type ] === \"function\" && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = /\\?/;\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11+\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = typeof valueOrFunction === \"function\" ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document$1.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( typeof func === \"function\" ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\n\t\t\t\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t\t\t\t// `getResponseHeader( key )` in IE doesn't combine all header\n\t\t\t\t\t\t\t\t// values for the provided key into a single result with values\n\t\t\t\t\t\t\t\t// joined by commas as other browsers do. Instead, it returns\n\t\t\t\t\t\t\t\t// them on separate lines.\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document$1.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11+\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11+\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an ESM-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" +\n\t\t\t\t\t( nonce.guid++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted.\n\t\t// Handle the null callback placeholder.\n\t\tif ( typeof data === \"function\" || data === null ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\t\tscriptAttrs: options.crossOrigin ? { \"crossOrigin\": options.crossOrigin } : undefined,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( typeof html === \"function\" ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( typeof html === \"function\" ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = typeof html === \"function\";\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\njQuery.ajaxSettings.xhr = function() {\n\treturn new window.XMLHttpRequest();\n};\n\nvar xhrSuccessStatus = {\n\n\t// File protocol always yields status code 0, assume 200\n\t0: 200\n};\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback;\n\n\treturn {\n\t\tsend: function( headers, complete ) {\n\t\t\tvar i,\n\t\t\t\txhr = options.xhr();\n\n\t\t\txhr.open(\n\t\t\t\toptions.type,\n\t\t\t\toptions.url,\n\t\t\t\toptions.async,\n\t\t\t\toptions.username,\n\t\t\t\toptions.password\n\t\t\t);\n\n\t\t\t// Apply custom fields if provided\n\t\t\tif ( options.xhrFields ) {\n\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override mime type if needed\n\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t}\n\n\t\t\t// X-Requested-With header\n\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t}\n\n\t\t\t// Set headers\n\t\t\tfor ( i in headers ) {\n\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t}\n\n\t\t\t// Callback\n\t\t\tcallback = function( type ) {\n\t\t\t\treturn function() {\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tcallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = null;\n\n\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) === \"text\" ?\n\t\t\t\t\t\t\t\t\t{ text: xhr.responseText } :\n\t\t\t\t\t\t\t\t\t{ binary: xhr.response },\n\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t// Listen to events\n\t\t\txhr.onload = callback();\n\t\t\txhr.onabort = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t// Create the abort callback\n\t\t\tcallback = callback( \"abort\" );\n\n\t\t\ttry {\n\n\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tabort: function() {\n\t\t\tif ( callback ) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t};\n} );\n\nfunction canUseScriptTag( s ) {\n\n\t// A script tag can only be used for async, cross domain or forced-by-attrs requests.\n\t// Requests with headers cannot use a script tag. However, when both `scriptAttrs` &\n\t// `headers` options are specified, both are impossible to satisfy together; we\n\t// prefer `scriptAttrs` then.\n\t// Sync requests remain handled differently to preserve strict script ordering.\n\treturn s.scriptAttrs || (\n\t\t!s.headers &&\n\t\t(\n\t\t\ts.crossDomain ||\n\n\t\t\t// When dealing with JSONP (`s.dataTypes` include \"json\" then)\n\t\t\t// don't use a script tag so that error responses still may have\n\t\t\t// `responseJSON` set. Continue using a script tag for JSONP requests that:\n\t\t\t// * are cross-domain as AJAX requests won't work without a CORS setup\n\t\t\t// * have `scriptAttrs` set as that's a script-only functionality\n\t\t\t// Note that this means JSONP requests violate strict CSP script-src settings.\n\t\t\t// A proper solution is to migrate from using JSONP to a CORS setup.\n\t\t\t( s.async && jQuery.inArray( \"json\", s.dataTypes ) < 0 )\n\t\t)\n\t);\n}\n\n// Install script dataType. Don't specify `contents.script` so that an explicit\n// `dataType: \"script\"` is required (see gh-2432, gh-4822)\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\n\t// These types of requests are handled via a script tag\n\t// so force their methods to GET.\n\tif ( canUseScriptTag( s ) ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\tif ( canUseScriptTag( s ) ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"