JFIFXX    $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222"4 ,PG"Z_4˷kjزZ,F+_z,© zh6٨icfu#ډb_N?wQ5-~I8TK<5oIv-k_U_~bMdӜUHh?]EwQk{_}qFW7HTՑYF?_'ϔ_Ջt=||I 6έ"D/[k9Y8ds|\Ҿp6Ҵ].6znopM[mei$[soᘨ˸ nɜG-ĨUycP3.DBli;hjx7Z^NhN3u{:jx힞#M&jL P@_ P&o89@Sz6t7#Oߋ s}YfTlmrZ)'Nk۞pw\Tȯ?8`Oi{wﭹW[r Q4F׊3m&L=h3z~#\l :F,j@ ʱwQT8"kJO6֚l}R>ډK]y&p}b;N1mr$|7>e@BTM*-iHgD) Em|ؘbҗaҾt4oG*oCNrPQ@z,|?W[0:n,jWiEW$~/hp\?{(0+Y8rΟ+>S-SVN;}s?. w9˟<Mq4Wv'{)01mBVW[8/< %wT^5b)iM pgN&ݝVO~qu9 !J27$O-! :%H ـyΠM=t{!S oK8txA& j0 vF Y|y ~6@c1vOpIg4lODL Rcj_uX63?nkWyf;^*B @~a`Eu+6L.ü>}y}_O6͐:YrGXkGl^w~㒶syIu! W XN7BVO!X2wvGRfT#t/?%8^WaTGcLMI(J1~8?aT ]ASE(*E} 2#I/׍qz^t̔bYz4xt){ OH+(EA&NXTo"XC')}Jzp ~5}^+6wcQ|LpdH}(.|kc4^"Z?ȕ a<L!039C EuCFEwç ;n?*oB8bʝ'#RqfM}7]s2tcS{\icTx;\7KPʇ Z O-~c>"?PEO8@8GQgaՎ󁶠䧘_%#r>1zaebqcPѵn#L =׀t L7`VA{C:ge@w1 Xp3c3ġpM"'-@n4fGB3DJ8[JoߐgK)ƛ$ 83+ 6ʻ SkI*KZlT _`?KQKdB`s}>`*>,*@JdoF*弝O}ks]yߘc1GV<=776qPTtXԀ!9*44Tހ3XΛex46YD  BdemDa\_l,G/֌7Y](xTt^%GE4}bTڹ;Y)BQu>J/J ⮶.XԄjݳ+Ed r5_D1 o Bx΢#<W8R6@gM. drD>(otU@x=~v2 ӣdoBd3eO6㣷ݜ66YQz`S{\P~z m5{J/L1xO\ZFu>ck#&:`$ai>2ΔloF[hlEܺΠk:)` $[69kOw\|8}ބ:񶐕IA1/=2[,!.}gN#ub ~݊}34qdELc$"[qU硬g^%B zrpJru%v\h1Yne`ǥ:gpQM~^Xi `S:V29.PV?Bk AEvw%_9CQwKekPؠ\;Io d{ ߞoc1eP\ `E=@KIRYK2NPlLɀ)&eB+ь( JTx_?EZ }@ 6U뙢طzdWIn` D噥[uV"G&Ú2g}&m?ċ"Om# {ON"SXNeysQ@FnVgdX~nj]J58up~.`r\O,ư0oS _Ml4kv\JSdxSW<AeIX$Iw:Sy›R9Q[,5;@]%u@ *rolbI  +%m:͇ZVủθau,RW33 dJeTYE.Mϧ-oj3+yy^cVO9NV\nd1 !͕_)av;թMlWR1)ElP;yوÏu 3k5Pr6<⒲l!˞*u־n!l:UNW %Chx8vL'X@*)̮ˍ D-M+JUkvK+x8cY?Ԡ~3mo|u@[XeYC\Kpx8oCC&N~3-H MXsu<`~"WL$8ξ3a)|:@m\^`@ҷ)5p+6p%i)P Mngc#0AruzRL+xSS?ʮ}()#tmˇ!0}}y$6Lt;$ʳ{^6{v6ķܰgVcnn ~zx«,2u?cE+ȘH؎%Za)X>uWTzNyosFQƤ$*&LLXL)1" LeOɟ9=:tZcŽY?ӭVwv~,Yrۗ|yGaFC.+ v1fήJ]STBn5sW}y$~z'c 8  ,! pVNSNNqy8z˱A4*'2n<s^ǧ˭PJޮɏUGLJ*#i}K%,)[z21z ?Nin1?TIR#m-1lA`fT5+ܐcq՝ʐ,3f2Uեmab#ŠdQy>\)SLYw#.ʑf ,"+w~N'cO3FN<)j&,- љ֊_zSTǦw>?nU仆Ve0$CdrP m׈eXmVu L.bֹ [Դaզ*\y8Է:Ez\0KqC b̘cөQ=0YsNS.3.Oo:#v7[#߫ 5܎LEr49nCOWlG^0k%;YߝZǓ:S#|}y,/kLd TA(AI$+I3;Y*Z}|ӧOdv..#:nf>>ȶITX 8y"dR|)0=n46ⲑ+ra ~]R̲c?6(q;5% |uj~z8R=XIV=|{vGj\gcqz؋%Mߍ1y#@f^^>N#x#۹6Y~?dfPO{P4Vu1E1J *|%JN`eWuzk M6q t[ gGvWIGu_ft5j"Y:Tɐ*; e54q$C2d} _SL#mYpO.C;cHi#֩%+) ӍƲVSYźg |tj38r|V1#;.SQA[S#`n+$$I P\[@s(EDzP])8G#0B[ىXIIq<9~[Z멜Z⊔IWU&A>P~#dp]9 "cP Md?٥Ifتuk/F9c*9Ǎ:ØFzn*@|Iށ9N3{'['ͬҲ4#}!V Fu,,mTIkv C7vB6kT91*l '~ƞFlU'M ][ΩũJ_{iIn$L jOdxkza۪#EClx˘oVɞljr)/,߬hL#^Lф,íMƁe̩NBLiLq}(q6IçJ$WE$:=#(KBzђ xlx?>Պ+>W,Ly!_DŌlQ![ SJ1ƐY}b,+Loxɓ)=yoh@꥟/Iѭ=Py9 ۍYӘe+pJnϱ?V\SO%(t =?MR[Șd/ nlB7j !;ӥ/[-A>dNsLj ,ɪv=1c.SQO3UƀܽE̻9GϷD7(}Ävӌ\y_0[w <΍>a_[0+LF.޺f>oNTq;y\bՃyjH<|q-eɏ_?_9+PHp$[uxK wMwNی'$Y2=qKBP~Yul:[<F12O5=d]Ysw:ϮEj,_QXz`H1,#II dwrP˂@ZJVy$\y{}^~[:NߌUOdؾe${p>G3cĖlʌ ת[`ϱ-WdgIig2 }s ؤ(%#sS@~3XnRG~\jc3vӍLM[JBTs3}jNʖW;7ç?=XF=-=qߚ#='c7ڑWI(O+=:uxqe2zi+kuGR0&eniT^J~\jyp'dtGsO39* b#Ɋ p[BwsT>d4ۧsnvnU_~,vƜJ1s QIz)(lv8MU=;56Gs#KMP=LvyGd}VwWBF'à ?MHUg2 !p7Qjڴ=ju JnA suMeƆҔ!)'8Ϣٔޝ(Vpצ֖d=ICJǠ{qkԭ߸i@Ku|p=..*+xz[Aqġ#s2aƊRR)*HRsi~a &fMP-KL@ZXy'x{}Zm+:)) IJ-iu ܒH'L(7yGӜq j 6ߌg1go,kرtY?W,pefOQS!K۟cҒA|սj>=⬒˧L[ ߿2JaB~Ru:Q] 0H~]7ƼI(}cq 'ήETq?fabӥvr )o-Q_'ᴎoK;Vo%~OK *bf:-ťIR`B5!RB@ï u ̯e\_U_ gES3QTaxU<~c?*#]MW,[8Oax]1bC|踤Plw5V%){t<d50iXSUm:Z┵i"1^B-PhJ&)O*DcWvM)}Pܗ-q\mmζZ-l@}aE6F@&Sg@ݚM ȹ 4#p\HdYDoH"\..RBHz_/5˘6KhJRPmƶim3,#ccoqa)*PtRmk7xDE\Y閣_X<~)c[[BP6YqS0%_;Àv~| VS؇ 'O0F0\U-d@7SJ*z3nyPOm~P3|Yʉr#CSN@ ƮRN)r"C:: #qbY. 6[2K2uǦHYRQMV G$Q+.>nNHq^ qmMVD+-#*U̒ p욳u:IBmPV@Or[b= 1UE_NmyKbNOU}the`|6֮P>\2PVIDiPO;9rmAHGWS]J*_G+kP2KaZH'KxWMZ%OYDRc+o?qGhmdSoh\D|:WUAQc yTq~^H/#pCZTI1ӏT4"ČZ}`w#*,ʹ 0i課Om*da^gJ݅{le9uF#Tֲ̲ٞC"qߍ ոޑo#XZTp@ o8(jdxw],f`~|,s^f1t|m򸄭/ctr5s79Q4H1꠲BB@l9@C+wpxu£Yc9?`@#omHs2)=2.ljg9$YS%*LRY7Z,*=䷘$armoϰUW.|rufIGwtZwo~5 YյhO+=8fF)W7L9lM̘·Y֘YLf큹pRF99.A "wz=E\Z'a 2Ǚ#;'}G*l^"q+2FQ hjkŦ${ޮ-T٭cf|3#~RJt$b(R(rdx >U b&9,>%E\ Άe$'q't*אެb-|dSBOO$R+H)܎K1m`;J2Y~9Og8=vqD`K[F)k[1m޼cn]skz$@)!I x՝"v9=ZA=`Ɠi :E)`7vI}dYI_ o:obo 3Q&D&2= Ά;>hy.*ⅥSӬ+q&j|UƧ}J0WW< ۋS)jQRjƯrN)Gű4Ѷ(S)Ǣ8iW52No˓ ۍ%5brOnL;n\G=^UdI8$&h'+(cȁ߫klS^cƗjԌEꭔgFȒ@}O*;evWVYJ\]X'5ղkFb 6Ro՜mi Ni>J?lPmU}>_Z&KKqrIDՉ~q3fL:Se>E-G{L6pe,8QIhaXaUA'ʂs+טIjP-y8ۈZ?J$WP Rs]|l(ԓsƊio(S0Y 8T97.WiLc~dxcE|2!XKƘਫ਼$((6~|d9u+qd^389Y6L.I?iIq9)O/뚅OXXVZF[یgQLK1RҖr@v#XlFНyS87kF!AsM^rkpjPDyS$Nqnxҍ!Uf!ehi2m`YI9r6 TFC}/y^Η5d'9A-J>{_l+`A['յϛ#w:݅%X}&PStQ"-\縵/$ƗhXb*yBS;Wջ_mcvt?2}1;qSdd~u:2k52R~z+|HE!)Ǟl7`0<,2*Hl-x^'_TVgZA'j ^2ΪN7t?w x1fIzC-ȖK^q;-WDvT78Z hK(P:Q- 8nZ܃e貾<1YT<,"6{/ ?͟|1:#gW>$dJdB=jf[%rE^il:BxSּ1հ,=*7 fcG#q eh?27,!7x6nLC4x},GeǝtC.vS F43zz\;QYC,6~;RYS/6|25vTimlv& nRh^ejRLGf? ۉҬܦƩ|Ȱ>3!viʯ>vオX3e_1zKȗ\qHS,EW[㺨uch⍸O}a>q6n6N6qN ! 1AQaq0@"2BRb#Pr3C`Scst$4D%Td ?Na3mCwxAmqmm$4n淿t'C"wzU=D\R+wp+YT&պ@ƃ3ޯ?AﶂaŘ@-Q=9Dռѻ@MVP܅G5fY6# ?0UQ,IX(6ڵ[DIMNލc&υj\XR|,4 jThAe^db#$]wOӪ1y%LYm뭛CUƃߜ}Cy1XνmF8jI]HۺиE@Ii;r8ӭVFՇ| &?3|xBMuSGe=Ӕ#BE5GY!z_eqр/W>|-Ci߇t1ޯќdR3ug=0 5[?#͏qcfH{ ?u=??ǯ}ZzhmΔBFTWPxs}G93 )gGR<>r h$'nchPBjJҧH -N1N?~}-q!=_2hcMlvY%UE@|vM2.Y[|y"EïKZF,ɯ?,q?vM 80jx";9vk+ ֧ ȺU?%vcVmA6Qg^MA}3nl QRNl8kkn'(M7m9وq%ޟ*h$Zk"$9: ?U8Sl,,|ɒxH(ѷGn/Q4PG%Ա8N! &7;eKM749R/%lc>x;>C:th?aKXbheᜋ^$Iհ hr7%F$EFdt5+(M6tÜUU|zW=aTsTgdqPQb'm1{|YXNb P~F^F:k6"j! Ir`1&-$Bevk:y#ywI0x=D4tUPZHڠ底taP6b>xaQ# WeFŮNjpJ* mQN*I-*ȩFg3 5Vʊɮa5FO@{NX?H]31Ri_uѕ 0 F~:60p͈SqX#a5>`o&+<2D: ڝ$nP*)N|yEjF5ټeihyZ >kbHavh-#!Po=@k̆IEN@}Ll?jO߭ʞQ|A07xwt!xfI2?Z<ץTcUj]陎Ltl }5ϓ$,Omˊ;@OjEj(ا,LXLOЦ90O .anA7j4 W_ٓzWjcBy՗+EM)dNg6y1_xp$Lv:9"zpʙ$^JԼ*ϭo=xLj6Ju82AH3$ٕ@=Vv]'qEz;I˼)=ɯx /W(Vp$ mu񶤑OqˎTr㠚xsrGCbypG1ߠw e8$⿄/M{*}W]˷.CK\ުx/$WPwr |i&}{X >$-l?-zglΆ(FhvS*b߲ڡn,|)mrH[a3ר[13o_U3TC$(=)0kgP u^=4 WYCҸ:vQרXàtkm,t*^,}D* "(I9R>``[~Q]#afi6l86:,ssN6j"A4IuQ6E,GnHzSHOuk5$I4ؤQ9@CwpBGv[]uOv0I4\yQѸ~>Z8Taqޣ;za/SI:ܫ_|>=Z8:SUIJ"IY8%b8H:QO6;7ISJҌAά3>cE+&jf$eC+z;V rʺmyeaQf&6ND.:NTvm<- uǝ\MvZYNNT-A>jr!SnO 13Ns%3D@`ܟ 1^c< aɽ̲Xë#w|ycW=9I*H8p^(4՗karOcWtO\ƍR8'KIQ?5>[}yUײ -h=% qThG2)"ו3]!kB*pFDlA,eEiHfPs5H:Փ~H0DتDIhF3c2E9H5zԑʚiX=:mxghd(v׊9iSOd@0ڽ:p5h-t&Xqӕ,ie|7A2O%PEhtjY1wЃ!  ࢽMy7\a@ţJ 4ȻF@o̒?4wx)]P~u57X 9^ܩU;Iꭆ 5 eK27({|Y׎ V\"Z1 Z}(Ǝ"1S_vE30>p; ΝD%xW?W?vo^Vidr[/&>~`9Why;R ;;ɮT?r$g1KACcKl:'3 cﳯ*"t8~l)m+U,z`(>yJ?h>]vЍG*{`;y]IT ;cNUfo¾h/$|NS1S"HVT4uhǜ]v;5͠x'C\SBplh}N ABx%ޭl/Twʽ]D=Kžr㻠l4SO?=k M: cCa#ha)ѐxcsgPiG{+xQI= zԫ+ 8"kñj=|c yCF/*9жh{ ?4o kmQNx;Y4膚aw?6>e]Qr:g,i"ԩA*M7qB?ӕFhV25r[7 Y }LR}*sg+xr2U=*'WSZDW]WǞ<叓{$9Ou4y90-1'*D`c^o?(9uݐ'PI& fJݮ:wSjfP1F:X H9dԯ˝[_54 }*;@ܨ ðynT?ןd#4rGͨH1|-#MrS3G3).᧏3vz֑r$G"`j 1tx0<ƆWh6y6,œGagAyb)hDß_mü gG;evݝnQ C-*oyaMI><]obD":GA-\%LT8c)+y76oQ#*{(F⽕y=rW\p۩cA^e6KʐcVf5$'->ՉN"F"UQ@fGb~#&M=8טJNu9D[̤so~ G9TtW^g5y$bY'سǴ=U-2 #MCt(i lj@Q 5̣i*OsxKf}\M{EV{υƇ);HIfeLȣr2>WIȂ6ik 5YOxȺ>Yf5'|H+98pjn.OyjY~iw'l;s2Y:'lgꥴ)o#'SaaKZ m}`169n"xI *+ }FP"l45'ZgE8?[X7(.Q-*ތL@̲v.5[=t\+CNܛ,gSQnH}*FG16&:t4ُ"Ạ$b |#rsaT ]ӽDP7ո0y)e$ٕvIh'QEAm*HRI=: 4牢) %_iNݧl] NtGHL ɱg<1V,J~ٹ"KQ 9HS9?@kr;we݁]I!{ @G["`J:n]{cAEVʆ#U96j#Ym\qe4hB7Cdv\MNgmAyQL4uLjj9#44tl^}LnR!t±]rh6ٍ>yҏNfU  Fm@8}/ujb9he:AyծwGpΧh5l}3p468)Udc;Us/֔YX1O2uqs`hwgr~{ RmhN؎*q 42*th>#E#HvOq}6e\,Wk#Xb>p}դ3T5†6[@Py*n|'f֧>lư΂̺SU'*qp_SM 'c6m ySʨ;MrƋmKxo,GmPAG:iw9}M(^V$ǒѽ9| aJSQarB;}ٻ֢2%Uc#gNaݕ'v[OY'3L3;,p]@S{lsX'cjwk'a.}}& dP*bK=ɍ!;3ngΊUߴmt'*{,=SzfD Ako~Gaoq_mi}#mPXhύmxǍ΂巿zfQc|kc?WY$_Lvl߶c`?ljݲˏ!V6UЂ(A4y)HpZ_x>eR$/`^'3qˏ-&Q=?CFVR DfV9{8gnh(P"6[D< E~0<@`G6Hгcc cK.5DdB`?XQ2ٿyqo&+1^ DW0ꊩG#QnL3c/x 11[yxპCWCcUĨ80me4.{muI=f0QRls9f9~fǨa"@8ȁQ#cicG$Gr/$W(WV"m7[mAmboD j۳ l^kh׽ # iXnveTka^Y4BNĕ0 !01@Q"2AaPq3BR?@4QT3,㺠W[=JKϞ2r^7vc:9 EߴwS#dIxu:Hp9E! V 2;73|F9Y*ʬFDu&y؟^EAA(ɩ^GV:ݜDy`Jr29ܾ㝉[E;FzxYGUeYC v-txIsםĘqEb+P\ :>iC';k|zرny]#ǿbQw(r|ӹs[D2v-%@;8<a[\o[ϧwI!*0krs)[J9^ʜp1) "/_>o<1AEy^C`x1'ܣnps`lfQ):lb>MejH^?kl3(z:1ŠK&?Q~{ٺhy/[V|6}KbXmn[-75q94dmc^h X5G-}دBޟ |rtMV+]c?-#ڛ^ǂ}LkrOu>-Dry D?:ޞUǜ7V?瓮"#rչģVR;n/_ ؉vݶe5db9/O009G5nWJpA*r9>1.[tsFnQ V 77R]ɫ8_0<՜IFu(v4Fk3E)N:yڮeP`1}$WSJSQNjٺ޵#lј(5=5lǏmoWv-1v,Wmn߀$x_DȬ0¤#QR[Vkzmw"9ZG7'[=Qj8R?zf\a=OU*oBA|G254 p.w7  &ξxGHp B%$gtЏ򤵍zHNuЯ-'40;_3 !01"@AQa2Pq#3BR?ʩcaen^8F<7;EA{EÖ1U/#d1an.1ě0ʾRh|RAo3m3 % 28Q yφHTo7lW>#i`qca m,B-j݋'mR1Ήt>Vps0IbIC.1Rea]H64B>o]($Bma!=?B KǾ+Ծ"nK*+[T#{EJSQs5:U\wĐf3܆&)IԆwE TlrTf6Q|Rh:[K zc֧GC%\_a84HcObiؖV7H )*ģK~Xhչ04?0 E<}3#u? |gS6ꊤ|I#Hڛ աwX97Ŀ%SLy6č|Fa 8b$sקhb9RAu7˨pČ_\*w묦F 4D~f|("mNKiS>$d7SlA/²SL|6N}S˯g]6; #. 403WebShell
403Webshell
Server IP : 45.32.152.128  /  Your IP : 216.73.216.105
Web Server : nginx/1.24.0
System : Linux stage-vultr 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : forge ( 1000)
PHP Version : 8.2.14
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/1396/root/usr/share/javascript/bootstrap4/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/1396/root/usr/share/javascript/bootstrap4/js/bootstrap.bundle.min.js
/*!
  * Bootstrap v4.4.1 (https://getbootstrap.com/)
  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t=t||self).bootstrap={},t.jQuery)}(this,function(t,e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): util.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Private TransitionEnd Helpers
   * ------------------------------------------------------------------------
   */
var n="transitionend";function i(t){var n=this,i=!1;return e(this).one(o.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||o.triggerTransitionEnd(n)},t),this}
/**
   * --------------------------------------------------------------------------
   * Public Util Api
   * --------------------------------------------------------------------------
   */
var o={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{
// eslint-disable-next-line no-bitwise
t+=~~(1e6*Math.random());// "~~" acts like a faster Math.floor() here
}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;
// Get transition-duration of the element
var n=e(t).css("transition-duration"),i=e(t).css("transition-delay"),o=parseFloat(n),r=parseFloat(i);
// Return 0 if element or transition duration is not found
return o||r?(
// If multiple durations are defined, take the first
n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(n)},
// TODO: Remove in v5
supportsTransitionEnd:function(){return Boolean(n)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],s=e[i],a=s&&o.isElement(s)?"element":(l=s,{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')}
// Shoutout AngusCroll (https://goo.gl/pxwQGp)
var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;
// Can find the shadow root otherwise it'll return the document
if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:
// when we don't find a shadow root
t.parentNode?o.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if(void 0===e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};o.jQueryDetection(),e.fn.emulateTransitionEnd=i,e.event.special[o.TRANSITION_END]={bindType:n,delegateType:n,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments);// eslint-disable-line prefer-rest-params
}};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): alert.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var r=e.fn.alert,s={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},a="alert",l="fade",c="show",h=function(t){this._element=t},u={VERSION:{configurable:!0}};
// Getters
u.VERSION.get=function(){return"4.4.1"},
// Public
h.prototype.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},h.prototype.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},
// Private
h.prototype._getRootElement=function(t){var n=o.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest("."+a)[0]),i},h.prototype._triggerCloseEvent=function(t){var n=e.Event(s.CLOSE);return e(t).trigger(n),n},h.prototype._removeElement=function(t){var n=this;if(e(t).removeClass(c),e(t).hasClass(l)){var i=o.getTransitionDurationFromElement(t);e(t).one(o.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(i)}else this._destroyElement(t)},h.prototype._destroyElement=function(t){e(t).detach().trigger(s.CLOSED).remove()},
// Static
h._jQueryInterface=function(t){return this.each(function(){var n=e(this),i=n.data("bs.alert");i||(i=new h(this),n.data("bs.alert",i)),"close"===t&&i[t](this)})},h._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},Object.defineProperties(h,u),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(document).on(s.CLICK_DATA_API,'[data-dismiss="alert"]',h._handleDismiss(new h)),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn.alert=h._jQueryInterface,e.fn.alert.Constructor=h,e.fn.alert.noConflict=function(){return e.fn.alert=r,h._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): button.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var f=e.fn.button,d="active",p="btn",g="focus",m='[data-toggle^="button"]',_='[data-toggle="buttons"]',v='[data-toggle="button"]',b='[data-toggle="buttons"] .btn',y='input:not([type="hidden"])',E=".active",w=".btn",C={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api",LOAD_DATA_API:"load.bs.button.data-api"},T=function(t){this._element=t},S={VERSION:{configurable:!0}};
// Getters
S.VERSION.get=function(){return"4.4.1"},
// Public
T.prototype.toggle=function(){var t=!0,n=!0,i=e(this._element).closest(_)[0];if(i){var o=this._element.querySelector(y);if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains(d))t=!1;else{var r=i.querySelector(E);r&&e(r).removeClass(d)}else"checkbox"===o.type?"LABEL"===this._element.tagName&&o.checked===this._element.classList.contains(d)&&(t=!1):
// if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
t=!1;t&&(o.checked=!this._element.classList.contains(d),e(o).trigger("change")),o.focus(),n=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(n&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(d)),t&&e(this._element).toggleClass(d))},T.prototype.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},
// Static
T._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.button");n||(n=new T(this),e(this).data("bs.button",n)),"toggle"===t&&n[t]()})},Object.defineProperties(T,S),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(document).on(C.CLICK_DATA_API,m,function(t){var n=t.target;if(e(n).hasClass(p)||(n=e(n).closest(w)[0]),!n||n.hasAttribute("disabled")||n.classList.contains("disabled"))t.preventDefault();// work around Firefox bug #1540995
else{var i=n.querySelector(y);if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))// work around Firefox bug #1540995
return void t.preventDefault();T._jQueryInterface.call(e(n),"toggle")}}).on(C.FOCUS_BLUR_DATA_API,m,function(t){var n=e(t.target).closest(w)[0];e(n).toggleClass(g,/^focus(in)?$/.test(t.type))}),e(window).on(C.LOAD_DATA_API,function(){for(
// ensure correct active class is set to match the controls' actual values/states
// find all checkboxes/readio buttons inside data-toggle groups
var t=[].slice.call(document.querySelectorAll(b)),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector(y);o.checked||o.hasAttribute("checked")?i.classList.add(d):i.classList.remove(d)}
// find all button toggles
for(var r=0,s=(t=[].slice.call(document.querySelectorAll(v))).length;r<s;r++){var a=t[r];"true"===a.getAttribute("aria-pressed")?a.classList.add(d):a.classList.remove(d)}}),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn.button=T._jQueryInterface,e.fn.button.Constructor=T,e.fn.button.noConflict=function(){return e.fn.button=f,T._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): carousel.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var D="carousel",I=".bs.carousel",O=e.fn[D],A={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},N={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},L="next",j="prev",P="left",x="right",k={SLIDE:"slide.bs.carousel",SLID:"slid.bs.carousel",KEYDOWN:"keydown.bs.carousel",MOUSEENTER:"mouseenter.bs.carousel",MOUSELEAVE:"mouseleave.bs.carousel",TOUCHSTART:"touchstart.bs.carousel",TOUCHMOVE:"touchmove.bs.carousel",TOUCHEND:"touchend.bs.carousel",POINTERDOWN:"pointerdown.bs.carousel",POINTERUP:"pointerup.bs.carousel",DRAG_START:"dragstart.bs.carousel",LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},H="carousel",R="active",F="slide",M="carousel-item-right",W="carousel-item-left",U="carousel-item-next",B="carousel-item-prev",q="pointer-event",K=".active",V=".active.carousel-item",Q=".carousel-item",Y=".carousel-item img",z=".carousel-item-next, .carousel-item-prev",X=".carousel-indicators",G="[data-slide], [data-slide-to]",$='[data-ride="carousel"]',J={TOUCH:"touch",PEN:"pen"},Z=function(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(X),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()},tt={VERSION:{configurable:!0},Default:{configurable:!0}};
// Getters
tt.VERSION.get=function(){return"4.4.1"},tt.Default.get=function(){return A},
// Public
Z.prototype.next=function(){this._isSliding||this._slide(L)},Z.prototype.nextWhenVisible=function(){
// Don't call next when the page isn't visible
// or the carousel or its parent isn't visible
!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},Z.prototype.prev=function(){this._isSliding||this._slide(j)},Z.prototype.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(z)&&(o.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},Z.prototype.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},Z.prototype.to=function(t){var n=this;this._activeElement=this._element.querySelector(V);var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(k.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var o=t>i?L:j;this._slide(o,this._items[t])}},Z.prototype.dispose=function(){e(this._element).off(I),e.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},
// Private
Z.prototype._getConfig=function(t){return t=Object.assign({},A,t),o.typeCheckConfig(D,t,N),t},Z.prototype._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,
// swipe left
e>0&&this.prev(),
// swipe right
e<0&&this.next()}},Z.prototype._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(k.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&e(this._element).on(k.MOUSEENTER,function(e){return t.pause(e)}).on(k.MOUSELEAVE,function(e){return t.cycle(e)}),this._config.touch&&this._addTouchEventListeners()},Z.prototype._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var n=function(e){t._pointerEvent&&J[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&J[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it;
// here, we listen for touchend, explicitly pause the carousel
// (as if it's the second time we tap on it, mouseenter compat event
// is NOT fired) and after a timeout (to allow for mouse compatibility
// events to fire) we explicitly restart cycling
t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};e(this._element.querySelectorAll(Y)).on(k.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(e(this._element).on(k.POINTERDOWN,function(t){return n(t)}),e(this._element).on(k.POINTERUP,function(t){return i(t)}),this._element.classList.add(q)):(e(this._element).on(k.TOUCHSTART,function(t){return n(t)}),e(this._element).on(k.TOUCHMOVE,function(e){return function(e){
// ensure swiping with one touch and not pinching
e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)}),e(this._element).on(k.TOUCHEND,function(t){return i(t)}))}},Z.prototype._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},Z.prototype._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(Q)):[],this._items.indexOf(t)},Z.prototype._getItemByDirection=function(t,e){var n=t===L,i=t===j,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===j?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},Z.prototype._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(V)),r=e.Event(k.SLIDE,{relatedTarget:t,direction:n,from:o,to:i});return e(this._element).trigger(r),r},Z.prototype._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var n=[].slice.call(this._indicatorsElement.querySelectorAll(K));e(n).removeClass(R);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&e(i).addClass(R)}},Z.prototype._slide=function(t,n){var i,r,s,a=this,l=this._element.querySelector(V),c=this._getItemIndex(l),h=n||l&&this._getItemByDirection(t,l),u=this._getItemIndex(h),f=Boolean(this._interval);if(t===L?(i=W,r=U,s=P):(i=M,r=B,s=x),h&&e(h).hasClass(R))this._isSliding=!1;else if(!this._triggerSlideEvent(h,s).isDefaultPrevented()&&l&&h){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(h);var d=e.Event(k.SLID,{relatedTarget:h,direction:s,from:c,to:u});if(e(this._element).hasClass(F)){e(h).addClass(r),o.reflow(h),e(l).addClass(i),e(h).addClass(i);var p=parseInt(h.getAttribute("data-interval"),10);p?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=p):this._config.interval=this._config.defaultInterval||this._config.interval;var g=o.getTransitionDurationFromElement(l);e(l).one(o.TRANSITION_END,function(){e(h).removeClass(i+" "+r).addClass(R),e(l).removeClass(R+" "+r+" "+i),a._isSliding=!1,setTimeout(function(){return e(a._element).trigger(d)},0)}).emulateTransitionEnd(g)}else e(l).removeClass(R),e(h).addClass(R),this._isSliding=!1,e(this._element).trigger(d);f&&this.cycle()}},
// Static
Z._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.carousel"),i=Object.assign({},A,e(this).data());"object"==typeof t&&(i=Object.assign({},i,t));var o="string"==typeof t?t:i.slide;if(n||(n=new Z(this,i),e(this).data("bs.carousel",n)),"number"==typeof t)n.to(t);else if("string"==typeof o){if(void 0===n[o])throw new TypeError('No method named "'+o+'"');n[o]()}else i.interval&&i.ride&&(n.pause(),n.cycle())})},Z._dataApiClickHandler=function(t){var n=o.getSelectorFromElement(this);if(n){var i=e(n)[0];if(i&&e(i).hasClass(H)){var r=Object.assign({},e(i).data(),e(this).data()),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),Z._jQueryInterface.call(e(i),r),s&&e(i).data("bs.carousel").to(s),t.preventDefault()}}},Object.defineProperties(Z,tt),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(document).on(k.CLICK_DATA_API,G,Z._dataApiClickHandler),e(window).on(k.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll($)),n=0,i=t.length;n<i;n++){var o=e(t[n]);Z._jQueryInterface.call(o,o.data())}}),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn[D]=Z._jQueryInterface,e.fn[D].Constructor=Z,e.fn[D].noConflict=function(){return e.fn[D]=O,Z._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): collapse.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var et="collapse",nt=e.fn[et],it={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},rt={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},st="show",at="collapse",lt="collapsing",ct="collapsed",ht="width",ut="height",ft=".show, .collapsing",dt='[data-toggle="collapse"]',pt=function(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(dt)),i=0,r=n.length;i<r;i++){var s=n[i],a=o.getSelectorFromElement(s),l=[].slice.call(document.querySelectorAll(a)).filter(function(e){return e===t});null!==a&&l.length>0&&(this._selector=a,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()},gt={VERSION:{configurable:!0},Default:{configurable:!0}};
// Getters
gt.VERSION.get=function(){return"4.4.1"},gt.Default.get=function(){return it},
// Public
pt.prototype.toggle=function(){e(this._element).hasClass(st)?this.hide():this.show()},pt.prototype.show=function(){var t,n,i=this;if(!this._isTransitioning&&!e(this._element).hasClass(st)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(ft)).filter(function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains(at)})).length&&(t=null),!(t&&(n=e(t).not(this._selector).data("bs.collapse"))&&n._isTransitioning))){var r=e.Event(rt.SHOW);if(e(this._element).trigger(r),!r.isDefaultPrevented()){t&&(pt._jQueryInterface.call(e(t).not(this._selector),"hide"),n||e(t).data("bs.collapse",null));var s=this._getDimension();e(this._element).removeClass(at).addClass(lt),this._element.style[s]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(ct).attr("aria-expanded",!0),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),l=o.getTransitionDurationFromElement(this._element);e(this._element).one(o.TRANSITION_END,function(){e(i._element).removeClass(lt).addClass(at).addClass(st),i._element.style[s]="",i.setTransitioning(!1),e(i._element).trigger(rt.SHOWN)}).emulateTransitionEnd(l),this._element.style[s]=this._element[a]+"px"}}},pt.prototype.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(st)){var n=e.Event(rt.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",o.reflow(this._element),e(this._element).addClass(lt).removeClass(at).removeClass(st);var r=this._triggerArray.length;if(r>0)for(var s=0;s<r;s++){var a=this._triggerArray[s],l=o.getSelectorFromElement(a);if(null!==l)e([].slice.call(document.querySelectorAll(l))).hasClass(st)||e(a).addClass(ct).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[i]="";var c=o.getTransitionDurationFromElement(this._element);e(this._element).one(o.TRANSITION_END,function(){t.setTransitioning(!1),e(t._element).removeClass(lt).addClass(at).trigger(rt.HIDDEN)}).emulateTransitionEnd(c)}}},pt.prototype.setTransitioning=function(t){this._isTransitioning=t},pt.prototype.dispose=function(){e.removeData(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},
// Private
pt.prototype._getConfig=function(t){return(t=Object.assign({},it,t)).toggle=Boolean(t.toggle),// Coerce string values
o.typeCheckConfig(et,t,ot),t},pt.prototype._getDimension=function(){return e(this._element).hasClass(ht)?ht:ut},pt.prototype._getParent=function(){var t,n=this;o.isElement(this._config.parent)?(t=this._config.parent,
// It's a jQuery object
void 0!==this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',r=[].slice.call(t.querySelectorAll(i));return e(r).each(function(t,e){n._addAriaAndCollapsedClass(pt._getTargetFromElement(e),[e])}),t},pt.prototype._addAriaAndCollapsedClass=function(t,n){var i=e(t).hasClass(st);n.length&&e(n).toggleClass(ct,!i).attr("aria-expanded",i)},
// Static
pt._getTargetFromElement=function(t){var e=o.getSelectorFromElement(t);return e?document.querySelector(e):null},pt._jQueryInterface=function(t){return this.each(function(){var n=e(this),i=n.data("bs.collapse"),o=Object.assign({},it,n.data(),"object"==typeof t&&t?t:{});if(!i&&o.toggle&&/show|hide/.test(t)&&(o.toggle=!1),i||(i=new pt(this,o),n.data("bs.collapse",i)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t]()}})},Object.defineProperties(pt,gt),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(document).on(rt.CLICK_DATA_API,dt,function(t){
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
"A"===t.currentTarget.tagName&&t.preventDefault();var n=e(this),i=o.getSelectorFromElement(this),r=[].slice.call(document.querySelectorAll(i));e(r).each(function(){var t=e(this),i=t.data("bs.collapse")?"toggle":n.data();pt._jQueryInterface.call(t,i)})}),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn[et]=pt._jQueryInterface,e.fn[et].Constructor=pt,e.fn[et].noConflict=function(){return e.fn[et]=nt,pt._jQueryInterface};var mt="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,_t=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(mt&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var vt=mt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},_t))}};
/**
  * Create a debounced version of a method, that's asynchronously deferred
  * but called in the minimum time possible.
  *
  * @method
  * @memberof Popper.Utils
  * @argument {Function} fn
  * @returns {Function}
  */
/**
   * Check if the given variable is a function
   * @method
   * @memberof Popper.Utils
   * @argument {Any} functionToCheck - variable to check
   * @returns {Boolean} answer to: is a function?
   */
function bt(t){return t&&"[object Function]"==={}.toString.call(t)}
/**
   * Get CSS computed property of the given element
   * @method
   * @memberof Popper.Utils
   * @argument {Eement} element
   * @argument {String} property
   */function yt(t,e){if(1!==t.nodeType)return[];
// NOTE: 1 DOM access here
var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}
/**
   * Returns the parentNode or the host of the element
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element
   * @returns {Element} parent
   */function Et(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}
/**
   * Returns the scrolling parent of the given element
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element
   * @returns {Element} scroll parent
   */function wt(t){
// Return body, `getScroll` will take care to get the correct `scrollTop` from it
if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}
// Firefox want us to check `-x` and `-y` variations as well
var e=yt(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:wt(Et(t))}
/**
   * Returns the reference node of the reference object, or the reference object itself.
   * @method
   * @memberof Popper.Utils
   * @param {Element|Object} reference - the reference element (the popper will be relative to this)
   * @returns {Element} parent
   */function Ct(t){return t&&t.referenceNode?t.referenceNode:t}var Tt=mt&&!(!window.MSInputMethodContext||!document.documentMode),St=mt&&/MSIE 10/.test(navigator.userAgent);
/**
   * Determines if the browser is Internet Explorer
   * @method
   * @memberof Popper.Utils
   * @param {Number} version to check
   * @returns {Boolean} isIE
   */
function Dt(t){return 11===t?Tt:10===t?St:Tt||St}
/**
   * Returns the offset parent of the given element
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element
   * @returns {Element} offset parent
   */function It(t){if(!t)return document.documentElement;
// Skip hidden elements which don't have an offsetParent
for(var e=Dt(10)?document.body:null,n=t.offsetParent||null
// NOTE: 1 DOM access here
;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?
// .offsetParent will return the closest TH, TD or TABLE in case
// no offsetParent is present, I hate this job...
-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===yt(n,"position")?It(n):n:t?t.ownerDocument.documentElement:document.documentElement}
/**
   * Finds the root node (document, shadowDOM root) of the given element
   * @method
   * @memberof Popper.Utils
   * @argument {Element} node
   * @returns {Element} root node
   */
function Ot(t){return null!==t.parentNode?Ot(t.parentNode):t}
/**
   * Finds the offset parent common to the two provided nodes
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element1
   * @argument {Element} element2
   * @returns {Element} common offset parent
   */function At(t,e){
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;
// Here we make sure to give as "start" the element that comes first in the DOM
var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;
// Both nodes are inside #document
if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&It(s.firstElementChild)!==s?It(l):l;
// one of the nodes is inside shadowDOM, find which one
var c=Ot(t);return c.host?At(c.host,e):At(t,Ot(e).host)}
/**
   * Gets the scroll value of the given element in the given side (top and left)
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element
   * @argument {String} side `top` or `left`
   * @returns {number} amount of scrolled pixels
   */function Nt(t,e){void 0===e&&(e="top");var n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||o)[n]}return t[n]}
/*
   * Sum or subtract the element scroll values (left and top) from a given rect object
   * @method
   * @memberof Popper.Utils
   * @param {Object} rect - Rect object you want to change
   * @param {HTMLElement} element - The element from the function reads the scroll values
   * @param {Boolean} subtract - set to true if you want to subtract the scroll values
   * @return {Object} rect - The modifier rect object
   */
/*
   * Helper to detect borders of a given element
   * @method
   * @memberof Popper.Utils
   * @param {CSSStyleDeclaration} styles
   * Result of `getStyleComputedProperty` on the given element
   * @param {String} axis - `x` or `y`
   * @return {number} borders - The borders size of the given axis
   */
function Lt(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function jt(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Dt(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function Pt(t){var e=t.body,n=t.documentElement,i=Dt(10)&&getComputedStyle(n);return{height:jt("Height",e,n,i),width:jt("Width",e,n,i)}}
/**
   * Given element offsets, generate an output similar to getBoundingClientRect
   * @method
   * @memberof Popper.Utils
   * @argument {Object} offsets
   * @returns {Object} ClientRect like output
   */function xt(t){return Object.assign({},t,{right:t.left+t.width,bottom:t.top+t.height})}
/**
   * Get bounding client rect of given element
   * @method
   * @memberof Popper.Utils
   * @param {HTMLElement} element
   * @return {Object} client rect
   */function kt(t){var e={};
// IE10 10 FIX: Please, don't ask, the element isn't
// considered in DOM in some circumstances...
// This isn't reproducible in IE10 compatibility mode of IE11
try{if(Dt(10)){e=t.getBoundingClientRect();var n=Nt(t,"top"),i=Nt(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?Pt(t.ownerDocument):{},s=r.width||t.clientWidth||o.width,a=r.height||t.clientHeight||o.height,l=t.offsetWidth-s,c=t.offsetHeight-a;
// subtract scrollbar size from sizes
// if an hypothetical scrollbar is detected, we must be sure it's not a `border`
// we make this check conditional for performance reasons
if(l||c){var h=yt(t);l-=Lt(h,"x"),c-=Lt(h,"y"),o.width-=l,o.height-=c}return xt(o)}function Ht(t,e,n){void 0===n&&(n=!1);var i=Dt(10),o="HTML"===e.nodeName,r=kt(t),s=kt(e),a=wt(t),l=yt(e),c=parseFloat(l.borderTopWidth,10),h=parseFloat(l.borderLeftWidth,10);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc
n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=xt({top:r.top-s.top-c,left:r.left-s.left-h,width:r.width,height:r.height});
// Subtract margins of documentElement in case it's being used as parent
// we do this only on HTML because it's the only element that behaves
// differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not.
if(u.marginTop=0,u.marginLeft=0,!i&&o){var f=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-f,u.bottom-=c-f,u.left-=h-d,u.right-=h-d,
// Attach marginTop and marginLeft because in some circumstances we may need them
u.marginTop=f,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e,n){void 0===n&&(n=!1);var i=Nt(e,"top"),o=Nt(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}
/**
   * Finds the first parent of an element that has a transformed property defined
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element
   * @returns {Element} first transformed parent or documentElement
   */
function Rt(t){
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
if(!t||!t.parentElement||Dt())return document.documentElement;for(var e=t.parentElement;e&&"none"===yt(e,"transform");)e=e.parentElement;return e||document.documentElement}
/**
   * Computed the boundaries limits and return them
   * @method
   * @memberof Popper.Utils
   * @param {HTMLElement} popper
   * @param {HTMLElement} reference
   * @param {number} padding
   * @param {HTMLElement} boundariesElement - Element used to define the boundaries
   * @param {Boolean} fixedPosition - Is in fixed position mode
   * @returns {Object} Coordinates of the boundaries
   */function Ft(t,e,n,i,o){void 0===o&&(o=!1);
// NOTE: 1 DOM access here
var r={top:0,left:0},s=o?Rt(t):At(t,Ct(e));
// Handle viewport case
if("viewport"===i)r=function(t,e){void 0===e&&(e=!1);var n=t.ownerDocument.documentElement,i=Ht(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:Nt(n),a=e?0:Nt(n,"left");return xt({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}
/**
   * Check if the given element is fixed or is inside a fixed parent
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element
   * @argument {Element} customContainer
   * @returns {Boolean} answer to "isFixed?"
   */(s,o);else{
// Handle other cases based on DOM element used as boundaries
var a;"scrollParent"===i?"BODY"===(a=wt(Et(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Ht(a,s,o);
// In case of HTML, we need a different computation
if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===yt(e,"position"))return!0;var i=Et(e);return!!i&&t(i)}(s))
// for all the other DOM elements, this one is good
r=l;else{var c=Pt(t.ownerDocument),h=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=h+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}
// Add paddings
var f="number"==typeof(n=n||0);return r.left+=f?n:n.left||0,r.top+=f?n:n.top||0,r.right-=f?n:n.right||0,r.bottom-=f?n:n.bottom||0,r}
/**
   * Utility used to transform the `auto` placement to the placement with more
   * available space.
   * @method
   * @memberof Popper.Utils
   * @argument {Object} data - The data object generated by update method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */
function Mt(t,e,n,i,o,r){if(void 0===r&&(r=0),-1===t.indexOf("auto"))return t;var s=Ft(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Object.assign({},{key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),h=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return h+(u?"-"+u:"")}
/**
   * Get offsets to the reference element
   * @method
   * @memberof Popper.Utils
   * @param {Object} state
   * @param {Element} popper - the popper element
   * @param {Element} reference - the reference element (the popper will be relative to this)
   * @param {Element} fixedPosition - is in fixed position mode
   * @returns {Object} An object containing the offsets which will be applied to the popper
   */function Wt(t,e,n,i){return void 0===i&&(i=null),Ht(n,i?Rt(e):At(e,Ct(n)),i)}
/**
   * Get the outer sizes of the given element (offset size + margins)
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element
   * @returns {Object} object containing width and height properties
   */function Ut(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}
/**
   * Get the opposite placement of the given one
   * @method
   * @memberof Popper.Utils
   * @argument {String} placement
   * @returns {String} flipped placement
   */function Bt(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}
/**
   * Get offsets to the popper
   * @method
   * @memberof Popper.Utils
   * @param {Object} position - CSS position the Popper will get applied
   * @param {HTMLElement} popper - the popper element
   * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
   * @param {String} placement - one of the valid placement options
   * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
   */function qt(t,e,n){n=n.split("-")[0];
// Get popper node sizes
var i=Ut(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";
// Add position, width and height to our offsets object
return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[Bt(a)],o}
/**
   * Mimics the `find` method of Array
   * @method
   * @memberof Popper.Utils
   * @argument {Array} arr
   * @argument prop
   * @argument value
   * @returns index or -1
   */function Kt(t,e){
// use native find if supported
return Array.prototype.find?t.find(e):t.filter(e)[0];
// use `filter` to obtain the same behavior of `find`
}
/**
   * Return the index of the matching object
   * @method
   * @memberof Popper.Utils
   * @argument {Array} arr
   * @argument prop
   * @argument value
   * @returns index or -1
   */
/**
   * Loop trough the list of modifiers and run them in order,
   * each of them will then edit the data object.
   * @method
   * @memberof Popper.Utils
   * @param {dataObject} data
   * @param {Array} modifiers
   * @param {String} ends - Optional modifier name used as stopper
   * @returns {dataObject}
   */
function Vt(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){
// use native findIndex if supported
if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});
// use `find` + `indexOf` if `findIndex` isn't supported
var i=Kt(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",n))).forEach(function(t){t.function&&// eslint-disable-line dot-notation
console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;// eslint-disable-line dot-notation
t.enabled&&bt(n)&&(
// Add properties to offsets to make them a complete clientRect object
// we do this before each modifier to make sure the previous one doesn't
// mess with these values
e.offsets.popper=xt(e.offsets.popper),e.offsets.reference=xt(e.offsets.reference),e=n(e,t))}),e}
/**
   * Updates the position of the popper, computing the new offsets and applying
   * the new style.<br />
   * Prefer `scheduleUpdate` over `update` because of performance reasons.
   * @method
   * @memberof Popper
   */
/**
   * Helper used to know if the given modifier is enabled.
   * @method
   * @memberof Popper.Utils
   * @returns {Boolean}
   */
function Qt(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}
/**
   * Get the prefixed supported property name
   * @method
   * @memberof Popper.Utils
   * @argument {String} property (camelCase)
   * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
   */function Yt(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if(void 0!==document.body.style[r])return r}return null}
/**
   * Destroys the popper.
   * @method
   * @memberof Popper
   */
/**
   * Get the window associated with the element
   * @argument {Element} element
   * @returns {Window}
   */
function zt(t){var e=t.ownerDocument;return e?e.defaultView:window}
/**
   * Setup needed event listeners used to update the popper position
   * @method
   * @memberof Popper.Utils
   * @private
   */
function Xt(t,e,n,i){
// Resize event listener on window
n.updateBound=i,zt(t).addEventListener("resize",n.updateBound,{passive:!0});
// Scroll event listener on scroll parents
var o=wt(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(wt(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}
/**
   * It will add resize/scroll events and start recalculating
   * position of the popper element when they are triggered.
   * @method
   * @memberof Popper
   */
/**
   * It will remove resize/scroll events and won't recalculate popper position
   * when they are triggered. It also won't trigger `onUpdate` callback anymore,
   * unless you call `update` method manually.
   * @method
   * @memberof Popper
   */
function Gt(){
/**
   * Remove event listeners used to update the popper position
   * @method
   * @memberof Popper.Utils
   * @private
   */
var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,
// Remove resize event listener on window
zt(t).removeEventListener("resize",e.updateBound),
// Remove scroll event listener on scroll parents
e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),
// Reset state
e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}
/**
   * Tells if a given input is a number
   * @method
   * @memberof Popper.Utils
   * @param {*} input to check
   * @return {Boolean}
   */function $t(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}
/**
   * Set the style to the given popper
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element - Element to apply the style to
   * @argument {Object} styles
   * Object with a list of properties and values which will be applied to the element
   */function Jt(t,e){Object.keys(e).forEach(function(n){var i="";
// add unit if the value is numeric and is one of the following
-1!==["width","height","top","right","bottom","left"].indexOf(n)&&$t(e[n])&&(i="px"),t.style[n]=e[n]+i})}
/**
   * Set the attributes to the given popper
   * @method
   * @memberof Popper.Utils
   * @argument {Element} element - Element to apply the attributes to
   * @argument {Object} styles
   * Object with a list of properties and values which will be applied to the element
   */var Zt=mt&&/Firefox/i.test(navigator.userAgent);
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by `update` method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */
/**
   * Helper used to know if the given modifier depends from another one.<br />
   * It checks if the needed modifier is listed and enabled.
   * @method
   * @memberof Popper.Utils
   * @param {Array} modifiers - list of modifiers
   * @param {String} requestingName - name of requesting modifier
   * @param {String} requestedName - name of requested modifier
   * @returns {Boolean}
   */
function te(t,e,n){var i=Kt(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by update method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */
/**
   * List of accepted placements to use as values of the `placement` option.<br />
   * Valid placements are:
   * - `auto`
   * - `top`
   * - `right`
   * - `bottom`
   * - `left`
   *
   * Each placement can have a variation from this list:
   * - `-start`
   * - `-end`
   *
   * Variations are interpreted easily if you think of them as the left to right
   * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
   * is right.<br />
   * Vertically (`left` and `right`), `start` is top and `end` is bottom.
   *
   * Some valid examples are:
   * - `top-end` (on top of reference, right aligned)
   * - `right-start` (on right of reference, top aligned)
   * - `bottom` (on bottom, centered)
   * - `auto-end` (on the side with more space available, alignment depends by placement)
   *
   * @static
   * @type {Array}
   * @enum {String}
   * @readonly
   * @method placements
   * @memberof Popper
   */
var ee=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],ne=ee.slice(3);
// Get rid of `auto` `auto-start` and `auto-end`
/**
   * Given an initial placement, returns all the subsequent placements
   * clockwise (or counter-clockwise).
   *
   * @method
   * @memberof Popper.Utils
   * @argument {String} placement - A valid placement (it accepts variations)
   * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
   * @returns {Array} placements including their variations
   */
function ie(t,e){void 0===e&&(e=!1);var n=ne.indexOf(t),i=ne.slice(n+1).concat(ne.slice(0,n));return e?i.reverse():i}var oe={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by update method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */
/**
   * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
   * @function
   * @memberof {modifiers~offset}
   * @private
   * @argument {String} offset
   * @argument {Object} popperOffsets
   * @argument {Object} referenceOffsets
   * @argument {String} basePlacement
   * @returns {Array} a two cells array with x and y offsets in numbers
   */
function re(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(Kt(s,function(t){return-1!==t.search(/,|\s/)}));
// Use height if placement is left or right and index is 0 otherwise use width
// in this way the first offset will use an axis and the second one
// will use the other one
s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");
// If divider is found, we divide the list of values and operands to divide
// them by ofset X and Y.
var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];
// Convert the values with units to absolute pixels to allow our computations
// Loop trough the offsets arrays and execute the operations
return(c=c.map(function(t,i){
// Most of the units rely on the orientation of the popper
var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){
/**
   * Converts a string containing value + unit into a px value number
   * @function
   * @memberof {modifiers~offset}
   * @private
   * @argument {String} str - Value + unit string
   * @argument {String} measurement - `height` or `width`
   * @argument {Object} popperOffsets
   * @argument {Object} referenceOffsets
   * @returns {Number|String}
   * Value in pixels, or original string if no values were extracted
   */return function(t,e,n,i){
// separate value from unit
var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];
// If it's not a number it's an operator, I guess
if(!r)return t;if(0===s.indexOf("%")){var a;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return xt(a)[e]/100*r}return"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r}(t,o,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){$t(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by update method
   * @argument {Object} options - Modifiers configuration and options
   * @argument {Number|String} options.offset=0
   * The offset value as described in the modifier description
   * @returns {Object} The data object, properly modified
   */
/**
   * Modifier function, each modifier can have a function of this type assigned
   * to its `fn` property.<br />
   * These functions will be called on each update, this means that you must
   * make sure they are performant enough to avoid performance bottlenecks.
   *
   * @function ModifierFn
   * @argument {dataObject} data - The data object generated by `update` method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {dataObject} The data object, properly modified
   */
/**
   * Modifiers are plugins used to alter the behavior of your poppers.<br />
   * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
   * needed by the library.
   *
   * Usually you don't want to override the `order`, `fn` and `onLoad` props.
   * All the other properties are configurations that could be tweaked.
   * @namespace modifiers
   */
var se={
/**
     * Popper's placement.
     * @prop {Popper.placements} placement='bottom'
     */
placement:"bottom",
/**
     * Set this to true if you want popper to position it self in 'fixed' mode
     * @prop {Boolean} positionFixed=false
     */
positionFixed:!1,
/**
     * Whether events (resize, scroll) are initially enabled.
     * @prop {Boolean} eventsEnabled=true
     */
eventsEnabled:!0,
/**
     * Set to true if you want to automatically remove the popper when
     * you call the `destroy` method.
     * @prop {Boolean} removeOnDestroy=false
     */
removeOnDestroy:!1,
/**
     * Callback called when the popper is created.<br />
     * By default, it is set to no-op.<br />
     * Access Popper.js instance with `data.instance`.
     * @prop {onCreate}
     */
onCreate:function(){},
/**
     * Callback called when the popper is updated. This callback is not called
     * on the initialization/creation of the popper, but only on subsequent
     * updates.<br />
     * By default, it is set to no-op.<br />
     * Access Popper.js instance with `data.instance`.
     * @prop {onUpdate}
     */
onUpdate:function(){},
/**
     * List of modifiers used to modify the offsets before they are applied to the popper.
     * They provide most of the functionalities of Popper.js.
     * @prop {modifiers}
     */
modifiers:{
/**
     * Modifier used to shift the popper on the start or end of its reference
     * element.<br />
     * It will read the variation of the `placement` property.<br />
     * It can be one either `-end` or `-start`.
     * @memberof modifiers
     * @inner
     */
shift:{
/** @prop {number} order=100 - Index used to define the order of execution */
order:100,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by `update` method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */
function(t){var e,n,i=t.placement,o=i.split("-")[0],r=i.split("-")[1];
// if shift shiftvariation is specified, run the modifier
if(r){var s=t.offsets,a=s.reference,l=s.popper,c=-1!==["bottom","top"].indexOf(o),h=c?"left":"top",u=c?"width":"height",f={start:(e={},e[h]=a[h],e),end:(n={},n[h]=a[h]+a[u]-l[u],n)};t.offsets.popper=Object.assign({},l,f[r])}return t}
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by update method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */},
/**
     * The `offset` modifier can shift your popper on both its axis.
     *
     * It accepts the following units:
     * - `px` or unit-less, interpreted as pixels
     * - `%` or `%r`, percentage relative to the length of the reference element
     * - `%p`, percentage relative to the length of the popper element
     * - `vw`, CSS viewport width unit
     * - `vh`, CSS viewport height unit
     *
     * For length is intended the main axis relative to the placement of the popper.<br />
     * This means that if the placement is `top` or `bottom`, the length will be the
     * `width`. In case of `left` or `right`, it will be the `height`.
     *
     * You can provide a single value (as `Number` or `String`), or a pair of values
     * as `String` divided by a comma or one (or more) white spaces.<br />
     * The latter is a deprecated method because it leads to confusion and will be
     * removed in v2.<br />
     * Additionally, it accepts additions and subtractions between different units.
     * Note that multiplications and divisions aren't supported.
     *
     * Valid examples are:
     * ```
     * 10
     * '10%'
     * '10, 10'
     * '10%, 10'
     * '10 + 10%'
     * '10 - 5vh + 3%'
     * '-10px + 5vh, 5px - 6%'
     * ```
     * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
     * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
     * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
     *
     * @memberof modifiers
     * @inner
     */
offset:{
/** @prop {number} order=200 - Index used to define the order of execution */
order:200,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:function(t,e){var n,i=e.offset,o=t.placement,r=t.offsets,s=r.popper,a=r.reference,l=o.split("-")[0];return n=$t(+i)?[+i,0]:re(i,s,a,l),"left"===l?(s.top+=n[0],s.left-=n[1]):"right"===l?(s.top+=n[0],s.left+=n[1]):"top"===l?(s.left+=n[0],s.top-=n[1]):"bottom"===l&&(s.left+=n[0],s.top+=n[1]),t.popper=s,t}
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by `update` method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */,
/** @prop {Number|String} offset=0
       * The offset value as described in the modifier description
       */
offset:0},
/**
     * Modifier used to prevent the popper from being positioned outside the boundary.
     *
     * A scenario exists where the reference itself is not within the boundaries.<br />
     * We can say it has "escaped the boundaries" — or just "escaped".<br />
     * In this case we need to decide whether the popper should either:
     *
     * - detach from the reference and remain "trapped" in the boundaries, or
     * - if it should ignore the boundary and "escape with its reference"
     *
     * When `escapeWithReference` is set to`true` and reference is completely
     * outside its boundaries, the popper will overflow (or completely leave)
     * the boundaries in order to remain attached to the edge of the reference.
     *
     * @memberof modifiers
     * @inner
     */
preventOverflow:{
/** @prop {number} order=300 - Index used to define the order of execution */
order:300,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:function(t,e){var n=e.boundariesElement||It(t.instance.popper);
// If offsetParent is the reference element, we really want to
// go one step up and use the next offsetParent as reference to
// avoid to make this modifier completely useless and look like broken
t.instance.reference===n&&(n=It(n));
// NOTE: DOM access here
// resets the popper's position so that the document size can be calculated excluding
// the size of the popper element itself
var i=Yt("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=Ft(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);
// NOTE: DOM access here
// restores the original style properties after the offsets have been computed
o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,h=t.offsets.popper,u={primary:function(t){var n,i=h[t];return h[t]<l[t]&&!e.escapeWithReference&&(i=Math.max(h[t],l[t])),(n={})[t]=i,n},secondary:function(t){var n,i="right"===t?"left":"top",o=h[i];return h[t]>l[t]&&!e.escapeWithReference&&(o=Math.min(h[i],l[t]-("right"===t?h.width:h.height))),(n={})[i]=o,n}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";h=Object.assign({},h,u[e](t))}),t.offsets.popper=h,t},
/**
       * @prop {Array} [priority=['left','right','top','bottom']]
       * Popper will try to prevent overflow following these priorities by default,
       * then, it could overflow on the left and on top of the `boundariesElement`
       */
priority:["left","right","top","bottom"],
/**
       * @prop {number} padding=5
       * Amount of pixel used to define a minimum distance between the boundaries
       * and the popper. This makes sure the popper always has a little padding
       * between the edges of its container
       */
padding:5,
/**
       * @prop {String|HTMLElement} boundariesElement='scrollParent'
       * Boundaries used by the modifier. Can be `scrollParent`, `window`,
       * `viewport` or any DOM element.
       */
boundariesElement:"scrollParent"},
/**
     * Modifier used to make sure the reference and its popper stay near each other
     * without leaving any gap between the two. Especially useful when the arrow is
     * enabled and you want to ensure that it points to its reference element.
     * It cares only about the first axis. You can still have poppers with margin
     * between the popper and its reference element.
     * @memberof modifiers
     * @inner
     */
keepTogether:{
/** @prop {number} order=400 - Index used to define the order of execution */
order:400,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by update method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */
function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},
/**
     * This modifier is used to move the `arrowElement` of the popper to make
     * sure it is positioned between the reference element and its popper element.
     * It will read the outer size of the `arrowElement` node to detect how many
     * pixels of conjunction are needed.
     *
     * It has no effect if no `arrowElement` is provided.
     * @memberof modifiers
     * @inner
     */
arrow:{
/** @prop {number} order=500 - Index used to define the order of execution */
order:500,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:function(t,e){var n;
// arrow depends on keepTogether in order to work
if(!te(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;
// if arrowElement is a string, suppose it's a CSS selector
if("string"==typeof i){
// if arrowElement is not found, don't run the modifier
if(!(i=t.instance.popper.querySelector(i)))return t}else
// if the arrowElement isn't a query selector we must check that the
// provided DOM node is child of its popper node
if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",h=l?"Top":"Left",u=h.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=Ut(i)[c];
//
// extends keepTogether behavior making sure the popper and its
// reference have enough pixels in conjunction
//
// top/left side
a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),
// bottom/right side
a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=xt(t.offsets.popper);
// compute center of the popper
var g=a[u]+a[c]/2-p/2,m=yt(t.instance.popper),_=parseFloat(m["margin"+h],10),v=parseFloat(m["border"+h+"Width"],10),b=g-t.offsets.popper[u]-_-v;
// Compute the sideValue using the updated popper offsets
// take popper margin in account because we don't have this info available
// prevent arrowElement from being placed not contiguously to its popper
return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=((n={})[u]=Math.round(b),n[f]="",n),t}
/**
   * Get the opposite placement variation of the given one
   * @method
   * @memberof Popper.Utils
   * @argument {String} placement variation
   * @returns {String} flipped placement variation
   */,
/** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
element:"[x-arrow]"},
/**
     * Modifier used to flip the popper's placement when it starts to overlap its
     * reference element.
     *
     * Requires the `preventOverflow` modifier before it in order to work.
     *
     * **NOTE:** this modifier will interrupt the current update cycle and will
     * restart it if it detects the need to flip the placement.
     * @memberof modifiers
     * @inner
     */
flip:{
/** @prop {number} order=600 - Index used to define the order of execution */
order:600,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:function(t,e){
// if `inner` modifier is enabled, we can't use the `flip` modifier
if(Qt(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)
// seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
return t;var n=Ft(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Bt(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case oe.FLIP:s=[i,o];break;case oe.CLOCKWISE:s=ie(i);break;case oe.COUNTERCLOCKWISE:s=ie(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=Bt(i);var c=t.offsets.popper,h=t.offsets.reference,u=Math.floor,f="left"===i&&u(c.right)>u(h.left)||"right"===i&&u(c.left)<u(h.right)||"top"===i&&u(c.bottom)>u(h.top)||"bottom"===i&&u(c.top)<u(h.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),g=u(c.top)<u(n.top),m=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&g||!v&&"end"===r&&m),y=!!e.flipVariationsByContent&&(v&&"start"===r&&p||v&&"end"===r&&d||!v&&"start"===r&&m||!v&&"end"===r&&g),E=b||y;(f||_||E)&&(
// this boolean to detect any flip loop
t.flipped=!0,(f||_)&&(i=s[l+1]),E&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),
// this object contains `position`, we want to preserve it along with
// any additional property we may add in the future
t.offsets.popper=Object.assign({},t.offsets.popper,qt(t.instance.popper,t.offsets.reference,t.placement)),t=Vt(t.instance.modifiers,t,"flip"))}),t},
/**
       * @prop {String|Array} behavior='flip'
       * The behavior used to change the popper's placement. It can be one of
       * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
       * placements (with optional variations)
       */
behavior:"flip",
/**
       * @prop {number} padding=5
       * The popper will flip if it hits the edges of the `boundariesElement`
       */
padding:5,
/**
       * @prop {String|HTMLElement} boundariesElement='viewport'
       * The element which will define the boundaries of the popper position.
       * The popper will never be placed outside of the defined boundaries
       * (except if `keepTogether` is enabled)
       */
boundariesElement:"viewport",
/**
       * @prop {Boolean} flipVariations=false
       * The popper will switch placement variation between `-start` and `-end` when
       * the reference element overlaps its boundaries.
       *
       * The original placement should have a set variation.
       */
flipVariations:!1,
/**
       * @prop {Boolean} flipVariationsByContent=false
       * The popper will switch placement variation between `-start` and `-end` when
       * the popper element overlaps its reference boundaries.
       *
       * The original placement should have a set variation.
       */
flipVariationsByContent:!1},
/**
     * Modifier used to make the popper flow toward the inner of the reference element.
     * By default, when this modifier is disabled, the popper will be placed outside
     * the reference element.
     * @memberof modifiers
     * @inner
     */
inner:{
/** @prop {number} order=700 - Index used to define the order of execution */
order:700,
/** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
enabled:!1,
/** @prop {ModifierFn} */
fn:
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by `update` method
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The data object, properly modified
   */
function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=Bt(e),t.offsets.popper=xt(o),t}},
/**
     * Modifier used to hide the popper when its reference element is outside of the
     * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
     * be used to hide with a CSS selector the popper when its reference is
     * out of boundaries.
     *
     * Requires the `preventOverflow` modifier before it in order to work.
     * @memberof modifiers
     * @inner
     */
hide:{
/** @prop {number} order=800 - Index used to define the order of execution */
order:800,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:function(t){if(!te(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Kt(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){
// Avoid unnecessary DOM access if visibility hasn't changed
if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{
// Avoid unnecessary DOM access if visibility hasn't changed
if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},
/**
     * Computes the style that will be applied to the popper element to gets
     * properly positioned.
     *
     * Note that this modifier will not touch the DOM, it just prepares the styles
     * so that `applyStyle` modifier can apply it. This separation is useful
     * in case you need to replace `applyStyle` with a custom implementation.
     *
     * This modifier has `850` as `order` value to maintain backward compatibility
     * with previous versions of Popper.js. Expect the modifiers ordering method
     * to change in future major versions of the library.
     *
     * @memberof modifiers
     * @inner
     */
computeStyle:{
/** @prop {number} order=850 - Index used to define the order of execution */
order:850,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=Kt(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s,a,l=void 0!==r?r:e.gpuAcceleration,c=It(t.instance.popper),h=kt(c),u={position:o.position},f=
/**
   * @function
   * @memberof Popper.Utils
   * @argument {Object} data - The data object generated by `update` method
   * @argument {Boolean} shouldRound - If the offsets should be rounded at all
   * @returns {Object} The popper's position offsets rounded
   *
   * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
   * good as it can be within reason.
   * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
   *
   * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
   * as well on High DPI screens).
   *
   * Firefox prefers no rounding for positioning and does not have blurriness on
   * high DPI screens.
   *
   * Only horizontal placement and left/right values need to be considered.
   */
function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),h=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),f=e?h||u||l%2==c%2?r:s:a,d=e?r:a;return{left:f(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:f(i.right)}}(t,window.devicePixelRatio<2||!Zt),d="bottom"===n?"top":"bottom",p="right"===i?"left":"right",g=Yt("transform");if(a="bottom"===d?
// when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
// and not the bottom of the html element
"HTML"===c.nodeName?-c.clientHeight+f.bottom:-h.height+f.bottom:f.top,s="right"===p?"HTML"===c.nodeName?-c.clientWidth+f.right:-h.width+f.right:f.left,l&&g)u[g]="translate3d("+s+"px, "+a+"px, 0)",u[d]=0,u[p]=0,u.willChange="transform";else{
// othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
var m="bottom"===d?-1:1,_="right"===p?-1:1;u[d]=a*m,u[p]=s*_,u.willChange=d+", "+p}
// Attributes
var v={"x-placement":t.placement};
// Update `data` attributes, styles and arrowStyles
return t.attributes=Object.assign({},v,t.attributes),t.styles=Object.assign({},u,t.styles),t.arrowStyles=Object.assign({},t.offsets.arrow,t.arrowStyles),t},
/**
       * @prop {Boolean} gpuAcceleration=true
       * If true, it uses the CSS 3D transformation to position the popper.
       * Otherwise, it will use the `top` and `left` properties
       */
gpuAcceleration:!0,
/**
       * @prop {string} [x='bottom']
       * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
       * Change this if your popper should grow in a direction different from `bottom`
       */
x:"bottom",
/**
       * @prop {string} [x='left']
       * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
       * Change this if your popper should grow in a direction different from `right`
       */
y:"right"},
/**
     * Applies the computed styles to the popper element.
     *
     * All the DOM manipulations are limited to this modifier. This is useful in case
     * you want to integrate Popper.js inside a framework or view library and you
     * want to delegate all the DOM manipulations to it.
     *
     * Note that if you disable this modifier, you must make sure the popper element
     * has its position set to `absolute` before Popper.js can do its work!
     *
     * Just disable this modifier and define your own to achieve the desired effect.
     *
     * @memberof modifiers
     * @inner
     */
applyStyle:{
/** @prop {number} order=900 - Index used to define the order of execution */
order:900,
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
enabled:!0,
/** @prop {ModifierFn} */
fn:
/**
   * @function
   * @memberof Modifiers
   * @argument {Object} data - The data object generated by `update` method
   * @argument {Object} data.styles - List of style properties - values to apply to popper element
   * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
   * @argument {Object} options - Modifiers configuration and options
   * @returns {Object} The same data object
   */
function(t){var e,n;
// any property present in `data.styles` will be applied to the popper,
// in this way we can make the 3rd party modifiers add custom styles to it
// Be aware, modifiers could override the properties defined in the previous
// lines of this modifier!
return Jt(t.instance.popper,t.styles),
// any property present in `data.attributes` will be applied to the popper,
// they will be set as HTML attributes of the element
e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),
// if arrowElement is defined and arrowStyles has some properties
t.arrowElement&&Object.keys(t.arrowStyles).length&&Jt(t.arrowElement,t.arrowStyles),t}
/**
   * Set the x-placement attribute before everything else because it could be used
   * to add margins to the popper margins needs to be calculated to get the
   * correct popper offsets.
   * @method
   * @memberof Popper.modifiers
   * @param {HTMLElement} reference - The reference element used to position the popper
   * @param {HTMLElement} popper - The HTML element used as popper
   * @param {Object} options - Popper.js options
   */,
/** @prop {Function} */
onLoad:function(t,e,n,i,o){
// compute reference element offsets
var r=Wt(0,e,t,n.positionFixed),s=Mt(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);
// compute auto placement, store placement inside the data object,
// modifiers will be able to edit `placement` if needed
// and refer to originalPlacement to know the original value
return e.setAttribute("x-placement",s),
// Apply `position` to popper before anything else because
// without the position applied we can't guarantee correct computations
Jt(e,{position:n.positionFixed?"fixed":"absolute"}),n},
/**
       * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
       * @prop {Boolean} gpuAcceleration=true
       * If true, it uses the CSS 3D transformation to position the popper.
       * Otherwise, it will use the `top` and `left` properties
       */
gpuAcceleration:void 0}}},ae=function t(e,n,i){var o=this;void 0===i&&(i={}),
// make update() debounced, so that it only runs at most once-per-tick
this.update=vt(this.update.bind(this)),this.scheduleUpdate=this.scheduleUpdate.bind(this),
// with {} we create a new object with the options inside it
this.options=Object.assign({},t.Defaults,i),
// init state
this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},
// get reference and popper elements (allow jQuery wrappers)
this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,
// Deep merge modifiers options
this.options.modifiers={},Object.keys(Object.assign({},t.Defaults.modifiers,i.modifiers)).forEach(function(e){o.options.modifiers[e]=Object.assign({},t.Defaults.modifiers[e]||{},
// If there are custom options, override and merge with default ones
i.modifiers?i.modifiers[e]:{})}),
// Refactoring modifiers' list (Object => Array)
this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Object.assign({},{name:t},o.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),
// modifiers have the ability to execute arbitrary code when Popper.js get inited
// such code is executed in the same order of its modifier
// they could add new properties to their options configuration
// BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
this.modifiers.forEach(function(t){t.enabled&&bt(t.onLoad)&&t.onLoad(o.reference,o.popper,o.options,t,o.state)}),
// fire the first update to position the popper in the right place
this.update();var r=this.options.eventsEnabled;r&&
// setup event listeners, they will take care of update the position in specific situations
this.enableEventListeners(),this.state.eventsEnabled=r};
/**
   * The `dataObject` is an object containing all the information used by Popper.js.
   * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
   * @name dataObject
   * @property {Object} data.instance The Popper.js instance
   * @property {String} data.placement Placement applied to popper
   * @property {String} data.originalPlacement Placement originally defined on init
   * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
   * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
   * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
   * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
   * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
   * @property {Object} data.boundaries Offsets of the popper boundaries
   * @property {Object} data.offsets The measurements of popper, reference and arrow elements
   * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
   * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
   * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
   */
/**
   * Default options provided to Popper.js constructor.<br />
   * These can be overridden using the `options` argument of Popper.js.<br />
   * To override an option, simply pass an object with the same
   * structure of the `options` object, as the 3rd argument. For example:
   * ```
   * new Popper(ref, pop, {
   *   modifiers: {
   *     preventOverflow: { enabled: false }
   *   }
   * })
   * ```
   * @type {Object}
   * @static
   * @memberof Popper
   */
// We can't use class properties because they don't get listed in the
// class prototype and break stuff like Sinon stubs
ae.prototype.update=function(){return function(){
// if popper is destroyed, don't perform any further update
if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};
// compute reference element offsets
t.offsets.reference=Wt(this.state,this.popper,this.reference,this.options.positionFixed),
// compute auto placement, store placement inside the data object,
// modifiers will be able to edit `placement` if needed
// and refer to originalPlacement to know the original value
t.placement=Mt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),
// store the computed placement inside `originalPlacement`
t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,
// compute the popper offsets
t.offsets.popper=qt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",
// run the modifiers
t=Vt(this.modifiers,t),
// the first `update` will call `onCreate` callback
// the other ones will call `onUpdate` callback
this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)},ae.prototype.destroy=function(){return function(){return this.state.isDestroyed=!0,
// touch DOM only if `applyStyle` modifier is enabled
Qt(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[Yt("transform")]=""),this.disableEventListeners(),
// remove the popper if user explicitly asked for the deletion on destroy
// do not use `remove` because IE11 doesn't support it
this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)},ae.prototype.enableEventListeners=function(){return function(){this.state.eventsEnabled||(this.state=Xt(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)},ae.prototype.disableEventListeners=function(){return Gt.call(this)},
/**
   * Schedules an update. It will run on the next UI update available.
   * @method scheduleUpdate
   * @memberof Popper
   */
ae.prototype.scheduleUpdate=function(){return requestAnimationFrame(this.update)},
/**
   * Collection of utilities useful when writing custom modifiers.
   * Starting from version 1.7, this method is available only if you
   * include `popper-utils.js` before `popper.js`.
   *
   * **DEPRECATION**: This way to access PopperUtils is deprecated
   * and will be removed in v2! Use the PopperUtils module directly instead.
   * Due to the high instability of the methods contained in Utils, we can't
   * guarantee them to follow semver. Use them at your own risk!
   * @static
   * @private
   * @type {Object}
   * @deprecated since version 1.8
   * @member Utils
   * @memberof Popper
   */
ae.Utils=("undefined"!=typeof window?window:global).PopperUtils,ae.placements=ee,ae.Defaults=se;
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): dropdown.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var le="dropdown",ce=e.fn[le],he=new RegExp("38|40|27"),ue={HIDE:"hide.bs.dropdown",HIDDEN:"hidden.bs.dropdown",SHOW:"show.bs.dropdown",SHOWN:"shown.bs.dropdown",CLICK:"click.bs.dropdown",CLICK_DATA_API:"click.bs.dropdown.data-api",KEYDOWN_DATA_API:"keydown.bs.dropdown.data-api",KEYUP_DATA_API:"keyup.bs.dropdown.data-api"},fe="disabled",de="show",pe="dropup",ge="dropright",me="dropleft",_e="dropdown-menu-right",ve="position-static",be='[data-toggle="dropdown"]',ye=".dropdown form",Ee=".dropdown-menu",we=".navbar-nav",Ce=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Te="top-start",Se="top-end",De="bottom-start",Ie="bottom-end",Oe="right-start",Ae="left-start",Ne={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},Le={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},je=function(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()},Pe={VERSION:{configurable:!0},Default:{configurable:!0},DefaultType:{configurable:!0}};
// Getters
Pe.VERSION.get=function(){return"4.4.1"},Pe.Default.get=function(){return Ne},Pe.DefaultType.get=function(){return Le},
// Public
je.prototype.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass(fe)){var t=e(this._menu).hasClass(de);je._clearMenus(),t||this.show(!0)}},je.prototype.show=function(t){if(void 0===t&&(t=!1),!(this._element.disabled||e(this._element).hasClass(fe)||e(this._menu).hasClass(de))){var n={relatedTarget:this._element},i=e.Event(ue.SHOW,n),r=je._getParentFromElement(this._element);if(e(r).trigger(i),!i.isDefaultPrevented()){
// Disable totally Popper.js for Dropdown in Navbar
if(!this._inNavbar&&t){0;var s=this._element;"parent"===this._config.reference?s=r:o.isElement(this._config.reference)&&(s=this._config.reference,
// Check if it's jQuery element
void 0!==this._config.reference.jquery&&(s=this._config.reference[0])),
// If boundary is not `scrollParent`, then set position to `static`
// to allow the menu to "escape" the scroll parent's boundaries
// https://github.com/twbs/bootstrap/issues/24251
"scrollParent"!==this._config.boundary&&e(r).addClass(ve),this._popper=new ae(s,this._menu,this._getPopperConfig())}
// If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
"ontouchstart"in document.documentElement&&0===e(r).closest(we).length&&e(document.body).children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).toggleClass(de),e(r).toggleClass(de).trigger(e.Event(ue.SHOWN,n))}}},je.prototype.hide=function(){if(!this._element.disabled&&!e(this._element).hasClass(fe)&&e(this._menu).hasClass(de)){var t={relatedTarget:this._element},n=e.Event(ue.HIDE,t),i=je._getParentFromElement(this._element);e(i).trigger(n),n.isDefaultPrevented()||(this._popper&&this._popper.destroy(),e(this._menu).toggleClass(de),e(i).toggleClass(de).trigger(e.Event(ue.HIDDEN,t)))}},je.prototype.dispose=function(){e.removeData(this._element,"bs.dropdown"),e(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},je.prototype.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},
// Private
je.prototype._addEventListeners=function(){var t=this;e(this._element).on(ue.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},je.prototype._getConfig=function(t){return t=Object.assign({},this.constructor.Default,e(this._element).data(),t),o.typeCheckConfig(le,t,this.constructor.DefaultType),t},je.prototype._getMenuElement=function(){if(!this._menu){var t=je._getParentFromElement(this._element);t&&(this._menu=t.querySelector(Ee))}return this._menu},je.prototype._getPlacement=function(){var t=e(this._element.parentNode),n=De;
// Handle dropup
return t.hasClass(pe)?(n=Te,e(this._menu).hasClass(_e)&&(n=Se)):t.hasClass(ge)?n=Oe:t.hasClass(me)?n=Ae:e(this._menu).hasClass(_e)&&(n=Ie),n},je.prototype._detectNavbar=function(){return e(this._element).closest(".navbar").length>0},je.prototype._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=Object.assign({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},je.prototype._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};
// Disable Popper.js if we have a static display
return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),Object.assign({},t,this._config.popperConfig)},
// Static
je._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.dropdown");if(n||(n=new je(this,"object"==typeof t?t:null),e(this).data("bs.dropdown",n)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},je._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=[].slice.call(document.querySelectorAll(be)),i=0,o=n.length;i<o;i++){var r=je._getParentFromElement(n[i]),s=e(n[i]).data("bs.dropdown"),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),s){var l=s._menu;if(e(r).hasClass(de)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&e.contains(r,t.target))){var c=e.Event(ue.HIDE,a);e(r).trigger(c),c.isDefaultPrevented()||(
// If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support
"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),n[i].setAttribute("aria-expanded","false"),s._popper&&s._popper.destroy(),e(l).removeClass(de),e(r).removeClass(de).trigger(e.Event(ue.HIDDEN,a)))}}}},je._getParentFromElement=function(t){var e,n=o.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},
// eslint-disable-next-line complexity
je._dataApiKeydownHandler=function(t){
// If not input/textarea:
//- And not a key in REGEXP_KEYDOWN => not a dropdown command
// If input/textarea:
//- If space key => not a dropdown command
//- If key is other than escape
//  - If key is not up or down => not a dropdown command
//  - If trigger inside the menu => not a dropdown command
if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||e(t.target).closest(Ee).length)):he.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!e(this).hasClass(fe))){var n=je._getParentFromElement(this),i=e(n).hasClass(de);if(i||27!==t.which)if(i&&(!i||27!==t.which&&32!==t.which)){var o=[].slice.call(n.querySelectorAll(Ce)).filter(function(t){return e(t).is(":visible")});if(0!==o.length){var r=o.indexOf(t.target);38===t.which&&r>0&&// Up
r--,40===t.which&&r<o.length-1&&// Down
r++,r<0&&(r=0),o[r].focus()}}else{if(27===t.which){var s=n.querySelector(be);e(s).trigger("focus")}e(this).trigger("click")}}},Object.defineProperties(je,Pe),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(document).on(ue.KEYDOWN_DATA_API,be,je._dataApiKeydownHandler).on(ue.KEYDOWN_DATA_API,Ee,je._dataApiKeydownHandler).on(ue.CLICK_DATA_API+" "+ue.KEYUP_DATA_API,je._clearMenus).on(ue.CLICK_DATA_API,be,function(t){t.preventDefault(),t.stopPropagation(),je._jQueryInterface.call(e(this),"toggle")}).on(ue.CLICK_DATA_API,ye,function(t){t.stopPropagation()}),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn[le]=je._jQueryInterface,e.fn[le].Constructor=je,e.fn[le].noConflict=function(){return e.fn[le]=ce,je._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): modal.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var xe=e.fn.modal,ke={backdrop:!0,keyboard:!0,focus:!0,show:!0},He={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Re={HIDE:"hide.bs.modal",HIDE_PREVENTED:"hidePrevented.bs.modal",HIDDEN:"hidden.bs.modal",SHOW:"show.bs.modal",SHOWN:"shown.bs.modal",FOCUSIN:"focusin.bs.modal",RESIZE:"resize.bs.modal",CLICK_DISMISS:"click.dismiss.bs.modal",KEYDOWN_DISMISS:"keydown.dismiss.bs.modal",MOUSEUP_DISMISS:"mouseup.dismiss.bs.modal",MOUSEDOWN_DISMISS:"mousedown.dismiss.bs.modal",CLICK_DATA_API:"click.bs.modal.data-api"},Fe="modal-dialog-scrollable",Me="modal-scrollbar-measure",We="modal-backdrop",Ue="modal-open",Be="fade",qe="show",Ke="modal-static",Ve=".modal-dialog",Qe=".modal-body",Ye='[data-toggle="modal"]',ze='[data-dismiss="modal"]',Xe=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Ge=".sticky-top",$e=function(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(Ve),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0},Je={VERSION:{configurable:!0},Default:{configurable:!0}};
// Getters
Je.VERSION.get=function(){return"4.4.1"},Je.Default.get=function(){return ke},
// Public
$e.prototype.toggle=function(t){return this._isShown?this.hide():this.show(t)},$e.prototype.show=function(t){var n=this;if(!this._isShown&&!this._isTransitioning){e(this._element).hasClass(Be)&&(this._isTransitioning=!0);var i=e.Event(Re.SHOW,{relatedTarget:t});e(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on(Re.CLICK_DISMISS,ze,function(t){return n.hide(t)}),e(this._dialog).on(Re.MOUSEDOWN_DISMISS,function(){e(n._element).one(Re.MOUSEUP_DISMISS,function(t){e(t.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(t)}))}},$e.prototype.hide=function(t){var n=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var i=e.Event(Re.HIDE);if(e(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var r=e(this._element).hasClass(Be);if(r&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off(Re.FOCUSIN),e(this._element).removeClass(qe),e(this._element).off(Re.CLICK_DISMISS),e(this._dialog).off(Re.MOUSEDOWN_DISMISS),r){var s=o.getTransitionDurationFromElement(this._element);e(this._element).one(o.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(s)}else this._hideModal()}}},$e.prototype.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return e(t).off(".bs.modal")}),
/**
     * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
     * Do not move `document` in `htmlElements` array
     * It will remove `Event.CLICK_DATA_API` event that should remain
     */
e(document).off(Re.FOCUSIN),e.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},$e.prototype.handleUpdate=function(){this._adjustDialog()},
// Private
$e.prototype._getConfig=function(t){return t=Object.assign({},ke,t),o.typeCheckConfig("modal",t,He),t},$e.prototype._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){var n=e.Event(Re.HIDE_PREVENTED);if(e(this._element).trigger(n),n.defaultPrevented)return;this._element.classList.add(Ke);var i=o.getTransitionDurationFromElement(this._element);e(this._element).one(o.TRANSITION_END,function(){t._element.classList.remove(Ke)}).emulateTransitionEnd(i),this._element.focus()}else this.hide()},$e.prototype._showElement=function(t){var n=this,i=e(this._element).hasClass(Be),r=this._dialog?this._dialog.querySelector(Qe):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||
// Don't move modal's DOM position
document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),e(this._dialog).hasClass(Fe)&&r?r.scrollTop=0:this._element.scrollTop=0,i&&o.reflow(this._element),e(this._element).addClass(qe),this._config.focus&&this._enforceFocus();var s=e.Event(Re.SHOWN,{relatedTarget:t}),a=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(s)};if(i){var l=o.getTransitionDurationFromElement(this._dialog);e(this._dialog).one(o.TRANSITION_END,a).emulateTransitionEnd(l)}else a()},$e.prototype._enforceFocus=function(){var t=this;e(document).off(Re.FOCUSIN).on(Re.FOCUSIN,function(n){document!==n.target&&t._element!==n.target&&0===e(t._element).has(n.target).length&&t._element.focus()})},$e.prototype._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?e(this._element).on(Re.KEYDOWN_DISMISS,function(e){27===e.which&&t._triggerBackdropTransition()}):this._isShown||e(this._element).off(Re.KEYDOWN_DISMISS)},$e.prototype._setResizeEvent=function(){var t=this;this._isShown?e(window).on(Re.RESIZE,function(e){return t.handleUpdate(e)}):e(window).off(Re.RESIZE)},$e.prototype._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){e(document.body).removeClass(Ue),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger(Re.HIDDEN)})},$e.prototype._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},$e.prototype._showBackdrop=function(t){var n=this,i=e(this._element).hasClass(Be)?Be:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=We,i&&this._backdrop.classList.add(i),e(this._backdrop).appendTo(document.body),e(this._element).on(Re.CLICK_DISMISS,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&n._triggerBackdropTransition()}),i&&o.reflow(this._backdrop),e(this._backdrop).addClass(qe),!t)return;if(!i)return void t();var r=o.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(o.TRANSITION_END,t).emulateTransitionEnd(r)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass(qe);var s=function(){n._removeBackdrop(),t&&t()};if(e(this._element).hasClass(Be)){var a=o.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(o.TRANSITION_END,s).emulateTransitionEnd(a)}else s()}else t&&t()},
// ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
// todo (fat): these should probably be refactored out of modal.js
// ----------------------------------------------------------------------
$e.prototype._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},$e.prototype._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},$e.prototype._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},$e.prototype._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
// while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
var n=[].slice.call(document.querySelectorAll(Xe)),i=[].slice.call(document.querySelectorAll(Ge));
// Adjust fixed content padding
e(n).each(function(n,i){var o=i.style.paddingRight,r=e(i).css("padding-right");e(i).data("padding-right",o).css("padding-right",parseFloat(r)+t._scrollbarWidth+"px")}),
// Adjust sticky content margin
e(i).each(function(n,i){var o=i.style.marginRight,r=e(i).css("margin-right");e(i).data("margin-right",o).css("margin-right",parseFloat(r)-t._scrollbarWidth+"px")});
// Adjust body padding
var o=document.body.style.paddingRight,r=e(document.body).css("padding-right");e(document.body).data("padding-right",o).css("padding-right",parseFloat(r)+this._scrollbarWidth+"px")}e(document.body).addClass(Ue)},$e.prototype._resetScrollbar=function(){
// Restore fixed content padding
var t=[].slice.call(document.querySelectorAll(Xe));e(t).each(function(t,n){var i=e(n).data("padding-right");e(n).removeData("padding-right"),n.style.paddingRight=i||""});
// Restore sticky content
var n=[].slice.call(document.querySelectorAll(""+Ge));e(n).each(function(t,n){var i=e(n).data("margin-right");void 0!==i&&e(n).css("margin-right",i).removeData("margin-right")});
// Restore body padding
var i=e(document.body).data("padding-right");e(document.body).removeData("padding-right"),document.body.style.paddingRight=i||""},$e.prototype._getScrollbarWidth=function(){// thx d.walsh
var t=document.createElement("div");t.className=Me,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},
// Static
$e._jQueryInterface=function(t,n){return this.each(function(){var i=e(this).data("bs.modal"),o=Object.assign({},ke,e(this).data(),"object"==typeof t&&t?t:{});if(i||(i=new $e(this,o),e(this).data("bs.modal",i)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](n)}else o.show&&i.show(n)})},Object.defineProperties($e,Je),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(document).on(Re.CLICK_DATA_API,Ye,function(t){var n,i=this,r=o.getSelectorFromElement(this);r&&(n=document.querySelector(r));var s=e(n).data("bs.modal")?"toggle":Object.assign({},e(n).data(),e(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var a=e(n).one(Re.SHOW,function(t){t.isDefaultPrevented()||a.one(Re.HIDDEN,function(){e(i).is(":visible")&&i.focus()})});$e._jQueryInterface.call(e(n),s,this)}),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn.modal=$e._jQueryInterface,e.fn.modal.Constructor=$e,e.fn.modal.noConflict=function(){return e.fn.modal=xe,$e._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): tools/sanitizer.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
var Ze=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],tn={
// Global attributes allowed on any supplied element below.
"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},en=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,nn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function on(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=[].slice.call(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1!==o.indexOf(i.nodeName.toLowerCase())){var a=[].slice.call(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ze.indexOf(n)||Boolean(t.nodeValue.match(en)||t.nodeValue.match(nn));
// Check if a regular expression validates the attribute.
for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,l)||i.removeAttribute(t.nodeName)})}else i.parentNode.removeChild(i)},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): tooltip.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */var rn="tooltip",sn=e.fn.tooltip,an=new RegExp("(^|\\s)bs-tooltip\\S+","g"),ln=["sanitize","whiteList","sanitizeFn"],cn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},hn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},un={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:tn,popperConfig:null},fn="show",dn="out",pn={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},gn="fade",mn="show",_n=".tooltip-inner",vn=".arrow",bn="hover",yn="focus",En="click",wn="manual",Cn=function(t,e){
// private
this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,
// Protected
this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()},Tn={VERSION:{configurable:!0},Default:{configurable:!0},NAME:{configurable:!0},DATA_KEY:{configurable:!0},Event:{configurable:!0},EVENT_KEY:{configurable:!0},DefaultType:{configurable:!0}};
// Getters
Tn.VERSION.get=function(){return"4.4.1"},Tn.Default.get=function(){return un},Tn.NAME.get=function(){return rn},Tn.DATA_KEY.get=function(){return"bs.tooltip"},Tn.Event.get=function(){return pn},Tn.EVENT_KEY.get=function(){return".bs.tooltip"},Tn.DefaultType.get=function(){return cn},
// Public
Cn.prototype.enable=function(){this._isEnabled=!0},Cn.prototype.disable=function(){this._isEnabled=!1},Cn.prototype.toggleEnabled=function(){this._isEnabled=!this._isEnabled},Cn.prototype.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(mn))return void this._leave(null,this);this._enter(null,this)}},Cn.prototype.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},Cn.prototype.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);var i=o.findShadowRoot(this.element),r=e.contains(null!==i?i:this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!r)return;var s=this.getTipElement(),a=o.getUID(this.constructor.NAME);s.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&e(s).addClass(gn);var l="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,c=this._getAttachment(l);this.addAttachmentClass(c);var h=this._getContainer();e(s).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(s).appendTo(h),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new ae(this.element,s,this._getPopperConfig(c)),e(s).addClass(mn),
// If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var u=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===dn&&t._leave(null,t)};if(e(this.tip).hasClass(gn)){var f=o.getTransitionDurationFromElement(this.tip);e(this.tip).one(o.TRANSITION_END,u).emulateTransitionEnd(f)}else u()}},Cn.prototype.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),s=function(){n._hoverState!==fn&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(r),!r.isDefaultPrevented()){if(e(i).removeClass(mn),
// If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support
"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger[En]=!1,this._activeTrigger[yn]=!1,this._activeTrigger[bn]=!1,e(this.tip).hasClass(gn)){var a=o.getTransitionDurationFromElement(i);e(i).one(o.TRANSITION_END,s).emulateTransitionEnd(a)}else s();this._hoverState=""}},Cn.prototype.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},
// Protected
Cn.prototype.isWithContent=function(){return Boolean(this.getTitle())},Cn.prototype.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},Cn.prototype.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},Cn.prototype.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(_n)),this.getTitle()),e(t).removeClass(gn+" "+mn)},Cn.prototype.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=on(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):
// Content is a DOM node or a jQuery
this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},Cn.prototype.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},
// Private
Cn.prototype._getPopperConfig=function(t){var e=this,n={placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:vn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}};return Object.assign({},n,this.config.popperConfig)},Cn.prototype._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=Object.assign({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},Cn.prototype._getContainer=function(){return!1===this.config.container?document.body:o.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},Cn.prototype._getAttachment=function(t){return hn[t.toUpperCase()]},Cn.prototype._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==wn){var i=n===bn?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o=n===bn?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(o,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=Object.assign({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},Cn.prototype._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},Cn.prototype._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?yn:bn]=!0),e(n.getTipElement()).hasClass(mn)||n._hoverState===fn?n._hoverState=fn:(clearTimeout(n._timeout),n._hoverState=fn,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===fn&&n.show()},n.config.delay.show):n.show())},Cn.prototype._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?yn:bn]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=dn,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===dn&&n.hide()},n.config.delay.hide):n.hide())},Cn.prototype._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},Cn.prototype._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach(function(t){-1!==ln.indexOf(t)&&delete n[t]}),"number"==typeof(t=Object.assign({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),o.typeCheckConfig(rn,t,this.constructor.DefaultType),t.sanitize&&(t.template=on(t.template,t.whiteList,t.sanitizeFn)),t},Cn.prototype._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},Cn.prototype._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(an);null!==n&&n.length&&t.removeClass(n.join(""))},Cn.prototype._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},Cn.prototype._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(gn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},
// Static
Cn._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new Cn(this,i),e(this).data("bs.tooltip",n)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},Object.defineProperties(Cn,Tn),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn.tooltip=Cn._jQueryInterface,e.fn.tooltip.Constructor=Cn,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=sn,Cn._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): popover.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var Sn="popover",Dn=e.fn.popover,In=new RegExp("(^|\\s)bs-popover\\S+","g"),On=Object.assign({},Cn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),An=Object.assign({},Cn.DefaultType,{content:"(string|element|function)"}),Nn="fade",Ln="show",jn=".popover-header",Pn=".popover-body",xn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},kn=/* */function(t){function n(){t.apply(this,arguments)}t&&(n.__proto__=t),n.prototype=Object.create(t&&t.prototype),n.prototype.constructor=n;var i={VERSION:{configurable:!0},Default:{configurable:!0},NAME:{configurable:!0},DATA_KEY:{configurable:!0},Event:{configurable:!0},EVENT_KEY:{configurable:!0},DefaultType:{configurable:!0}};return i.VERSION.get=function(){return"4.4.1"},i.Default.get=function(){return On},i.NAME.get=function(){return Sn},i.DATA_KEY.get=function(){return"bs.popover"},i.Event.get=function(){return xn},i.EVENT_KEY.get=function(){return".bs.popover"},i.DefaultType.get=function(){return An},
// Overrides
n.prototype.isWithContent=function(){return this.getTitle()||this._getContent()},n.prototype.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},n.prototype.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},n.prototype.setContent=function(){var t=e(this.getTipElement());
// We use append for html objects to maintain js events
this.setElementContent(t.find(jn),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(Pn),n),t.removeClass(Nn+" "+Ln)},
// Private
n.prototype._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},n.prototype._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(In);null!==n&&n.length>0&&t.removeClass(n.join(""))},
// Static
n._jQueryInterface=function(t){return this.each(function(){var i=e(this).data("bs.popover"),o="object"==typeof t?t:null;if((i||!/dispose|hide/.test(t))&&(i||(i=new n(this,o),e(this).data("bs.popover",i)),"string"==typeof t)){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t]()}})},Object.defineProperties(n,i),n}(Cn);
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn.popover=kn._jQueryInterface,e.fn.popover.Constructor=kn,e.fn.popover.noConflict=function(){return e.fn.popover=Dn,kn._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): scrollspy.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var Hn="scrollspy",Rn=e.fn[Hn],Fn={offset:10,method:"auto",target:""},Mn={offset:"number",method:"string",target:"(string|element)"},Wn={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},Un="dropdown-item",Bn="active",qn='[data-spy="scroll"]',Kn=".nav, .list-group",Vn=".nav-link",Qn=".nav-item",Yn=".list-group-item",zn=".dropdown",Xn=".dropdown-item",Gn=".dropdown-toggle",$n="offset",Jn="position",Zn=function(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+Vn+","+this._config.target+" "+Yn+","+this._config.target+" "+Xn,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(Wn.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()},ti={VERSION:{configurable:!0},Default:{configurable:!0}};
// Getters
ti.VERSION.get=function(){return"4.4.1"},ti.Default.get=function(){return Fn},
// Public
Zn.prototype.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?$n:Jn,i="auto"===this._config.method?n:this._config.method,r=i===Jn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var n,s=o.getSelectorFromElement(t);if(s&&(n=document.querySelector(s)),n){var a=n.getBoundingClientRect();if(a.width||a.height)
// TODO (fat): remove sketch reliance on jQuery position/offset
return[e(n)[i]().top+r,s]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},Zn.prototype.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},
// Private
Zn.prototype._getConfig=function(t){if("string"!=typeof(t=Object.assign({},Fn,"object"==typeof t&&t?t:{})).target){var n=e(t.target).attr("id");n||(n=o.getUID(Hn),e(t.target).attr("id",n)),t.target="#"+n}return o.typeCheckConfig(Hn,t,Mn),t},Zn.prototype._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},Zn.prototype._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},Zn.prototype._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},Zn.prototype._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},Zn.prototype._activate=function(t){this._activeTarget=t,this._clear();var n=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),i=e([].slice.call(document.querySelectorAll(n.join(","))));i.hasClass(Un)?(i.closest(zn).find(Gn).addClass(Bn),i.addClass(Bn)):(
// Set triggered link as active
i.addClass(Bn),
// Set triggered links parents as active
// With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
i.parents(Kn).prev(Vn+", "+Yn).addClass(Bn),
// Handle special case when .nav-link is inside .nav-item
i.parents(Kn).prev(Qn).children(Vn).addClass(Bn)),e(this._scrollElement).trigger(Wn.ACTIVATE,{relatedTarget:t})},Zn.prototype._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(Bn)}).forEach(function(t){return t.classList.remove(Bn)})},
// Static
Zn._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.scrollspy");if(n||(n=new Zn(this,"object"==typeof t&&t),e(this).data("bs.scrollspy",n)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},Object.defineProperties(Zn,ti),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(window).on(Wn.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(qn)),n=t.length;n--;){var i=e(t[n]);Zn._jQueryInterface.call(i,i.data())}}),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn[Hn]=Zn._jQueryInterface,e.fn[Hn].Constructor=Zn,e.fn[Hn].noConflict=function(){return e.fn[Hn]=Rn,Zn._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): tab.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var ei=e.fn.tab,ni={HIDE:"hide.bs.tab",HIDDEN:"hidden.bs.tab",SHOW:"show.bs.tab",SHOWN:"shown.bs.tab",CLICK_DATA_API:"click.bs.tab.data-api"},ii="dropdown-menu",oi="active",ri="disabled",si="fade",ai="show",li=".dropdown",ci=".nav, .list-group",hi=".active",ui="> li > .active",fi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',di=".dropdown-toggle",pi="> .dropdown-menu .active",gi=function(t){this._element=t},mi={VERSION:{configurable:!0}};
// Getters
mi.VERSION.get=function(){return"4.4.1"},
// Public
gi.prototype.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(oi)||e(this._element).hasClass(ri))){var n,i,r=e(this._element).closest(ci)[0],s=o.getSelectorFromElement(this._element);if(r){var a="UL"===r.nodeName||"OL"===r.nodeName?ui:hi;i=(i=e.makeArray(e(r).find(a)))[i.length-1]}var l=e.Event(ni.HIDE,{relatedTarget:this._element}),c=e.Event(ni.SHOW,{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){s&&(n=document.querySelector(s)),this._activate(this._element,r);var h=function(){var n=e.Event(ni.HIDDEN,{relatedTarget:t._element}),o=e.Event(ni.SHOWN,{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},gi.prototype.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},
// Private
gi.prototype._activate=function(t,n,i){var r=this,s=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(hi):e(n).find(ui))[0],a=i&&s&&e(s).hasClass(si),l=function(){return r._transitionComplete(t,s,i)};if(s&&a){var c=o.getTransitionDurationFromElement(s);e(s).removeClass(ai).one(o.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},gi.prototype._transitionComplete=function(t,n,i){if(n){e(n).removeClass(oi);var r=e(n.parentNode).find(pi)[0];r&&e(r).removeClass(oi),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(oi),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),o.reflow(t),t.classList.contains(si)&&t.classList.add(ai),t.parentNode&&e(t.parentNode).hasClass(ii)){var s=e(t).closest(li)[0];if(s){var a=[].slice.call(s.querySelectorAll(di));e(a).addClass(oi)}t.setAttribute("aria-expanded",!0)}i&&i()},
// Static
gi._jQueryInterface=function(t){return this.each(function(){var n=e(this),i=n.data("bs.tab");if(i||(i=new gi(this),n.data("bs.tab",i)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t]()}})},Object.defineProperties(gi,mi),
/**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
e(document).on(ni.CLICK_DATA_API,fi,function(t){t.preventDefault(),gi._jQueryInterface.call(e(this),"show")}),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn.tab=gi._jQueryInterface,e.fn.tab.Constructor=gi,e.fn.tab.noConflict=function(){return e.fn.tab=ei,gi._jQueryInterface};
/**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.4.1): toast.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
/**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */
var _i=e.fn.toast,vi={CLICK_DISMISS:"click.dismiss.bs.toast",HIDE:"hide.bs.toast",HIDDEN:"hidden.bs.toast",SHOW:"show.bs.toast",SHOWN:"shown.bs.toast"},bi="fade",yi="hide",Ei="show",wi="showing",Ci={animation:"boolean",autohide:"boolean",delay:"number"},Ti={animation:!0,autohide:!0,delay:500},Si='[data-dismiss="toast"]',Di=function(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()},Ii={VERSION:{configurable:!0},DefaultType:{configurable:!0},Default:{configurable:!0}};
// Getters
Ii.VERSION.get=function(){return"4.4.1"},Ii.DefaultType.get=function(){return Ci},Ii.Default.get=function(){return Ti},
// Public
Di.prototype.show=function(){var t=this,n=e.Event(vi.SHOW);if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._config.animation&&this._element.classList.add(bi);var i=function(){t._element.classList.remove(wi),t._element.classList.add(Ei),e(t._element).trigger(vi.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(yi),o.reflow(this._element),this._element.classList.add(wi),this._config.animation){var r=o.getTransitionDurationFromElement(this._element);e(this._element).one(o.TRANSITION_END,i).emulateTransitionEnd(r)}else i()}},Di.prototype.hide=function(){if(this._element.classList.contains(Ei)){var t=e.Event(vi.HIDE);e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},Di.prototype.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Ei)&&this._element.classList.remove(Ei),e(this._element).off(vi.CLICK_DISMISS),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},
// Private
Di.prototype._getConfig=function(t){return t=Object.assign({},Ti,e(this._element).data(),"object"==typeof t&&t?t:{}),o.typeCheckConfig("toast",t,this.constructor.DefaultType),t},Di.prototype._setListeners=function(){var t=this;e(this._element).on(vi.CLICK_DISMISS,Si,function(){return t.hide()})},Di.prototype._close=function(){var t=this,n=function(){t._element.classList.add(yi),e(t._element).trigger(vi.HIDDEN)};if(this._element.classList.remove(Ei),this._config.animation){var i=o.getTransitionDurationFromElement(this._element);e(this._element).one(o.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},
// Static
Di._jQueryInterface=function(t){return this.each(function(){var n=e(this),i=n.data("bs.toast");if(i||(i=new Di(this,"object"==typeof t&&t),n.data("bs.toast",i)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](this)}})},Object.defineProperties(Di,Ii),
/**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */
e.fn.toast=Di._jQueryInterface,e.fn.toast.Constructor=Di,e.fn.toast.noConflict=function(){return e.fn.toast=_i,Di._jQueryInterface},t.Alert=h,t.Button=T,t.Carousel=Z,t.Collapse=pt,t.Dropdown=je,t.Modal=$e,t.Popover=kn,t.Scrollspy=Zn,t.Tab=gi,t.Toast=Di,t.Tooltip=Cn,t.Util=o,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=bootstrap.bundle.js.map
//# sourceMappingURL=bootstrap.bundle.min.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit