From 4e80cbb2ec9bec67a6a81ac0171982f3589e75f6 Mon Sep 17 00:00:00 2001 From: Matteo Guadrini Date: Fri, 26 Feb 2021 13:52:22 +0100 Subject: [PATCH 1/4] Fix PSCouchDBDocument guid; fix GetHeader method on PSCouchDBRequest class --- PSCouchDB/PSCouchDB.psm1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PSCouchDB/PSCouchDB.psm1 b/PSCouchDB/PSCouchDB.psm1 index 81f1653..d6ae23f 100755 --- a/PSCouchDB/PSCouchDB.psm1 +++ b/PSCouchDB/PSCouchDB.psm1 @@ -23,7 +23,7 @@ class PSCouchDBDocument { # Constructors # No specified _id PSCouchDBDocument () { - $this._id = (New-CouchDBUuids -Count 1).uuids[0] + $this._id = (New-Guid).Guid.Replace('-', $null) $this.doc.Add('_id', $this._id) } @@ -1394,6 +1394,7 @@ class PSCouchDBRequest { } try { [System.Net.WebResponse] $resp = $this.client.GetResponse() + $resp.Close() $this.uri.LastStatusCode = $resp.StatusCode } catch [System.Net.WebException] { [System.Net.HttpWebResponse] $errcode = $_.Exception.Response From 7a7645b11bfb2700ded8eda864e7f64de6fc5be4 Mon Sep 17 00:00:00 2001 From: Matteo Guadrini Date: Thu, 27 May 2021 14:21:55 +0200 Subject: [PATCH 2/4] Added Partition parameter on Set-CouchDBDocument --- PSCouchDB/functions/CouchDBdocument.ps1 | 5 + docs/build/doctrees/auth.doctree | Bin 5716 -> 5736 bytes docs/build/doctrees/classes.doctree | Bin 133751 -> 133203 bytes docs/build/doctrees/cmdlets.doctree | Bin 90592 -> 88598 bytes docs/build/doctrees/config.doctree | Bin 10668 -> 10625 bytes docs/build/doctrees/databases.doctree | Bin 33993 -> 33994 bytes docs/build/doctrees/ddoc.doctree | Bin 29513 -> 29422 bytes docs/build/doctrees/documents.doctree | Bin 93369 -> 93484 bytes docs/build/doctrees/environment.pickle | Bin 119142 -> 119323 bytes docs/build/doctrees/index.doctree | Bin 4936 -> 4951 bytes docs/build/doctrees/intro.doctree | Bin 13395 -> 13144 bytes docs/build/doctrees/permission.doctree | Bin 16897 -> 16816 bytes docs/build/doctrees/server.doctree | Bin 31256 -> 31182 bytes docs/build/doctrees/support.doctree | Bin 11790 -> 11858 bytes docs/build/doctrees/uses.doctree | Bin 19659 -> 19565 bytes docs/build/html/.buildinfo | 2 +- docs/build/html/_sources/cmdlets.rst.txt | 2 +- docs/build/html/_sources/documents.rst.txt | 1 + docs/build/html/_static/basic.css | 144 +- docs/build/html/_static/css/badge_only.css | 2 +- docs/build/html/_static/css/theme.css | 6 +- docs/build/html/_static/doctools.js | 10 +- .../html/_static/documentation_options.js | 2 + docs/build/html/_static/jquery-3.5.1.js | 10872 ++++++++++++++++ docs/build/html/_static/jquery.js | 4 +- docs/build/html/_static/js/badge_only.js | 1 + docs/build/html/_static/js/theme.js | 4 +- docs/build/html/_static/language_data.js | 2 +- docs/build/html/_static/pygments.css | 7 +- docs/build/html/_static/searchtools.js | 42 +- docs/build/html/auth.html | 57 +- docs/build/html/classes.html | 57 +- docs/build/html/cmdlets.html | 59 +- docs/build/html/config.html | 57 +- docs/build/html/databases.html | 57 +- docs/build/html/ddoc.html | 57 +- docs/build/html/documents.html | 60 +- docs/build/html/genindex.html | 49 +- docs/build/html/index.html | 54 +- docs/build/html/intro.html | 57 +- docs/build/html/objects.inv | Bin 411 -> 423 bytes docs/build/html/permission.html | 57 +- docs/build/html/search.html | 52 +- docs/build/html/searchindex.js | 2 +- docs/build/html/server.html | 57 +- docs/build/html/support.html | 54 +- docs/build/html/uses.html | 57 +- docs/source/cmdlets.rst | 2 +- docs/source/documents.rst | 1 + 49 files changed, 11497 insertions(+), 455 deletions(-) create mode 100644 docs/build/html/_static/jquery-3.5.1.js create mode 100644 docs/build/html/_static/js/badge_only.js diff --git a/PSCouchDB/functions/CouchDBdocument.ps1 b/PSCouchDB/functions/CouchDBdocument.ps1 index b8196d4..53509f9 100644 --- a/PSCouchDB/functions/CouchDBdocument.ps1 +++ b/PSCouchDB/functions/CouchDBdocument.ps1 @@ -569,6 +569,8 @@ function Set-CouchDBDocument () { The CouchDB revision document. .PARAMETER Data The data in Json format, PSCouchDBDocument or hastable. + .PARAMETER Partition + The CouchDB partition. .PARAMETER Replace Overwrite data. .PARAMETER Attachment @@ -618,6 +620,7 @@ function Set-CouchDBDocument () { [Parameter(mandatory = $true)] [string] $Revision, $Data, + [string] $Partition, [switch] $Replace, [string] $Attachment, [switch] $BatchMode, @@ -679,6 +682,8 @@ function Set-CouchDBDocument () { $parameters += "new_edits=false" $Revision = $null } + # Check Partition + if ($Partition) { $Document = "${Partition}:${Document}" } # Convert doc object to json $Data = $Data.ToJson(99) Send-CouchDBRequest -Server $Server -Port $Port -Method "PUT" -Database $Database -Document $Document -Revision $Revision -Params $parameters -Data $Data -Authorization $Authorization -Ssl:$Ssl -ProxyServer $ProxyServer -ProxyCredential $ProxyCredential diff --git a/docs/build/doctrees/auth.doctree b/docs/build/doctrees/auth.doctree index 294a150aae6509cc893dfb68f1907c70931426ff..dc17c8f5d0b1205dadf09fe0322435d78599b84e 100644 GIT binary patch delta 1411 zcmb7^PiWI{6vy}5mc+J6OC4r~{-H`Yy7do?F*oaJD*mBZaU#NCxGW96)U6p!f}1$h z!@xs4l;3X$Pa=YM$<>1(3Z6tzK@e}Ef;TT7eaSYO$yT?*FSPyr@_nE0d++x?6n_*4 z?{OP*a*zLUV&*dF&6ToJuearixD%}#s%`0uX1Qt9HIub3rbwvW$m4_N!~ut2R$5xq zVi0e?T8hLV2_g{agA_eUszSONw-+GfJ|qc3WcOJwBk?4ZH&4_cUGsKnwZC*hcBEzgaBlJ)I z_^E&5XkA|~LJA6yt`2M)K&cX4;?5A6+T0}l$%!a969n(hvn?nG1VeO^pGU#V{51W{ zi|HgR>}`wo3YP{)VSWoN5zr}75YpE$V^=gQt7KKfxT$NEK*m<_@U4Thro0&Ri|_^+ ze+kb=c9vkh3+odpbG*Zv39^oCmC=cw^Jz`ZG_k%F1_D-3rtd@PN)k2>PMh;-^Wi&4 zI~Be`#fX>Dr`;(7866H%(ne$!bzVnW*q?3?2BzqF@#z2h^Tpm_JN@bU{rOVNpy3@c z_Sc&Q-*7^zAZT71qAQYT_~YJ@DV8N*xU|FYCustM-P#no(6{x(+M?|CCyr0#zDBo z8s0|Dge-pbw(;(a9eG;}>-FoZVK*(U#hi$0EG}xQH_=Sy2&cFHr}+9hn_-lfYkvXD Cgw2=$ delta 1359 zcmb7^!D|yi6vlVbWY;vCt!daarkgg^Mw>KIL~1qYK@miQ5d<%4w3{^e5|T!;8w$k| zJrq3bCCn62@YKIR7CdGhudFjJ_#b=0|Fy3 zNwXv?DA_=>0G#=Xgb9(&H!em35lDC5$bpixR_R@Ln#i;&9=T}vFEw?jH_B_OUaqe& zlsnffs1RLeb1E;kL;{v}pu!G~6s-tR z)OaQ+nFy@@KagUH(eJ{06!|5*PHeEJ%<|L&Jg#gEfogfDT0N*KCsblb!;r3)^q3mc zN}7hJmSG^^@yP#7_cncwGMfjkLV~WZvvwKD(Z^UuX7nMId?I?fH5}jJ>2W7Mt@`eu z&IexuGif?$V3A%IXK)QO+3J(Yw}UtAWzw`VX$UdAAZjhcc8l*#AsR~tIZ5*i8R{sN^IvZeq4 diff --git a/docs/build/doctrees/classes.doctree b/docs/build/doctrees/classes.doctree index 1c01e78b8ec90017397c18f96cc929889e3a1fa1..ec72abfa61b09d3c98f80b70ebf49dffe8843d6a 100644 GIT binary patch literal 133203 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

11Ivry;&Fcx-)B>AK>o$JFbWQN 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 literal 133751 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 diff --git a/docs/build/doctrees/cmdlets.doctree b/docs/build/doctrees/cmdlets.doctree index 8f0a6c1bb73be13e835e221062a202285cd4a98e..f570c44577b567dbacc395d5dedd56d77c6136dd 100644 GIT binary patch literal 88598 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 literal 90592 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 MofZoa+GAV)KPA1T0{{R3 diff --git a/docs/build/doctrees/config.doctree b/docs/build/doctrees/config.doctree index f959535d758d5b14d3217b3c8d5e1748c94906e4..1ec799588a8be5e4191a674b89eaade2f8992ed8 100644 GIT binary patch literal 10625 zcmdT~O^h5z74}bd*E{yEy|!bBVnfAAkb`$-?8F3P0mjZB!O6t(Mgd}yc29TBRIhuw z+uhasV-gV}A+RVAD9r(hQ?8LBp`f5hh#Nve+_-Q@LXi+RgoL>8y{i75*qd4Zki^oq zr~Y2O_v(AEUcIWHXHNbFP7k&Q`ZCKkk2v0Y8)EcMh~z8CPUm-cPdvZai@ zekvgfvA*4N6R@df9N$h7RO0tkV2{kN9c~&`g}&`vj`@K4q-sXmLu$&zZgH>JMKg+n z>glcsN4z`2EIjNCQ`?Qb!0SGqt1RiBkHaCC((9gIdMr#G@%Y&;^pkWAuU#h$2Hvm} zCy?UMxrMY3k!K;6J&f&0)YbB4KAb($S!0eJus&xlkNj|*yUYt1_oU!4vsvN=L!Y-v z`7ERg$4?Wgw)B1MInjKJ|1Xe2?9m8^V%yRa`Ap(u~43Hui@OK!058&@}_&Wj= zh|h~faZnt^TJ0-PfHm7`?4rW;o}xnST+++IdRUG^KaIMIku#updU8exhF><_HA9~Q zBkgkD)iXH|m_?u9ouJN zzyYJMTz}3yxya%)I915_ky5@2a*BcGz}DUT`Xc<5>-3_i&-B+d!$3dK&D%v=NBa z?Apjbl|(jq?;TMLJC0ZIa|-5-s%vV8ZwK&XL)5jRa24J`aNp0=yzqv?$Dg$9cu4M) z?BQZ=4+kr?@zQ|Q&YCyM?82UkY7H$^*UYO0GP!dtQN4kA&E#q?R9TiQg?tYbU!5EV zWL8&eW_4e~tX^2c763ya12SH)Zf1)N8x329CuVXrB=4(@j4Uweu(RuM*aJKDrM4tp z%dmsNqZjPoDe{#zegg4+Jh?Usqqx7&3bgT^(#d?`1|~2W>~C^(B@03Qmm5J{To%3< zT@yhA$RcVY_rXfG8gdaJ=xwux+FI2Hhy`G3WTy0>M%TiBTwdhhhIf=;004wK>=bM^+F~pC;FGVMy&l z+YLkNKE-9Rk&wbC-8nWruHv7J=dZVJJl&c+8$h;o#&v-dTGax#^{R@ke}djWCRZzg z_x&1pPc*>$Fd#OvgVgr@b%qm7&H+U?1m+xTi$L`#LXUd|}fRnh`V%QIWIY`Jwbovaj4^Pw#) zUE9_tnwle}+5%D^2qEeYjWDqRH0LhBAHnl9(K%LI3cLIO1ckhZ=|6o2oaE2|m@a>| z9H9f7uY4?!y8N&a=UB-k@8UD z1(}X}m%j?_-nwz%d{~005o65Jj=I7>Xd-z-0qqT~1bD2O+?3vbYt~j)Y!J3ka6x+aDv$j;+vSW~GZwi@YXfKx|w4puSFtndP5654mQkLlC6QfwmVz4vkpJq`U zu6Wpn5x{r>&VK_OmT1?wlJXckN#L?Ha&2jj#4C2}g=tbAhRtDb#r9L4=)(ZAGd685 z0i7C(xxFBfcHr`CmtzLx!GZr82>h6{HtVY zGmvy^;xr)n;*Idc+E17i4oecBwa@W&BUbwb3R@Utn)En%C#NXYqXD^X+wB14psA}_ zbr&u~8W)gn>iaR{Z;-6QW*+DmAoN|cC6A}B3^wvcle21Fx^%Of7<&a?z{l-e`?>xy z{?jY;3IiZ<%h-O#OXQ_X#xkngo=*zPN5ld3`0Y?{Rzl-8(E} z^8aH&52zRK9BL|+X=}RwL#zpRJInW>PpOzHa4D{F>fuO{61a^1`zIj1*N|>HVFWPM zENa0-25mcN7aKx#gOoSY39V`z3y;P^4|w<*_5C^Z8^vFF`&hK}VIdg8o7x<6HzNLl zh9>8DTA)))#rd@&Ij;Kh(StZjmvLLwypzUs$gs-C5W9*R^C&{?Na#I6fD1geP(IZd z#39bPft#smy#pi__ILNx?2rez1eIZ&p+E;;oLxr|3Omg-7HD5av6UCo*hgtjhK@y# zD5w?FO@Xg?JyUxJVJOM#)*8=kRde(tAxKBo8g3#-8EWQnn(`vc2}k<20VMA=HTjY! z7TvX3#ZwN$8s6j>$kpjcg@b1Q-E6T#iO2HFi0TK=jkN_gsq7A~#PYY$(G!h~D(ks2kA zv{t;tGZ5Wvxn4q-^ALnmI~X`q7=$>gc0rf~CZH2FXq(HsSp(09aCi|kAMwb7Omtp% zw7k2hrf*|v!nR^U$|yP2?XIq_cA|CM@&_H9_PZ`$>7r-S&D7mAf+*4mOLBygFdVva z=TZB?V<(`N`FP-rO+z)+GzW`mWEkQ>mB-~kPb1{W#}u>D?!yFJDYA1r)FA+BWR5iA9{Gh zEQ$9GKXg}N_@QK~;fHc%h9BBjH9z_cm8!Wq=Cm5-91kv)^a$0M8uAN8Kcnw@jp+x= z1M)`w&@W-EyY3&WEPKy3D9#qM>Op%O^x@)TNqfrOKFh3 literal 10668 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 ZdYQ}|&lpbm^y!dKzuwAIfY+R#{6Dhc3%LLQ literal 33993 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 H7sme|2)hC$ diff --git a/docs/build/doctrees/ddoc.doctree b/docs/build/doctrees/ddoc.doctree index 45dfb414684da7a7575e3ee50ce2615446a78d74..8e4bf65cdef0417e9fa908fc981c769fea564ea2 100644 GIT binary patch literal 29422 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 literal 29513 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 URm_EV*rL}8q_&GZgt%JzKZ%=WoB#j- diff --git a/docs/build/doctrees/documents.doctree b/docs/build/doctrees/documents.doctree index ea61b6bc2a60b5112c412afcd517ac0a3bbaa6b7..2b45bbe61168533a7fb80386ba5e096fa357610b 100644 GIT binary patch literal 93484 zcmeHw34B~vd2hVPmgGHgoDgTZQA}b7NnYcPnBaIJj&0eo9LErXbTxBFGgqS-W$uh+ zCm52lWa*_8qCg0QhC(51Z7HEp;HBlUlolQ|KwqGQF6qWEP)b8nXbZge|Gsn2az`_F z&S%JV2lc(%A@x7(s4vTNC z>B@-yG2o_#N?wM_RKmGscaUC_T; zDyt8cii2LcoLhaccSo_3%I>^&HRu$q7O>KHrg6|+3V_H(dzVxOfO#7*a|cWANY+S8~0d)vmNbTV-F5-_-av{!CD4zx>WBUKU{RcQ`NmQaKb5P zJtr9PQn^eHyy)-W8G+W{?_^5F;qmVyM)mi1J2w{cUJy7ZiWR5i-CFSi!Yyhng-6G7 z0ko)-+sL~RqyB9ywWjzZGpwcqkF>Eyj#EsGl*yHBgIjm znDz4cv2bBFH<-=iU%AgM4bm`2CiV4^NxeW5T5~2`2m{vTc1gQ2=1Qx~Z%o_jns&M! zjYUJBGK>j!`UPaCF_dAf2LoUjWq;8Szbs5Bp-J}$dVRlXWReFHvfl4CtoJ1lu{S6M zztKjZ4oa9=z;cB_TUnZ>)-^52K0cZxM%l6K{n@wOlYM(kNV4yUOU0#<* z>}5ha7%w#NCMT5eG|Y|gPceqgDG!#4m636;$aS5YD&}c;9`~}Y;e)4K%#Y^M+r5a(nuOl6chYem^@^c`!nz-NhD1VZzVAQWuwABN1^`&d45qv9_@q8+qtWE z$Dut35AQk9BSDNk(?DJzfIPoBApLVK%13Z&yDF`yX)}KcWd6Mo#?M3oLHryjrpGg9 zW%g%rVysM{PV1q_X_TbV4>VnN3A*gCz*B0^m0_?+w8lhJTgkE6*po!2;7UeZU4SDTv6^J*%u9khp6x`)#78Cu_c)eQSb(;m860aA5 z0izb>39qt%x4y1je28ZeidS&aTs;p}hQ3iTjnI7pp|@B7Xd?6*7UeZU)4`}VsaMK> zF`j7rJ}&V4m<7BNzfLgXcP+{jejny?37X|Z45J}iDp-0z=~$px*0`WX>dysIU$y|! zMCywcbJ)2X@T4KEntR>5Q!t7uu&*2f)-Y}gTDHgCYC&kddf<|()Kysr6 z&?b`WEy`;or-PA;3`XvOfJ-8bd#-UkDsVkw0lUO?H5k=vQJ!!;$mJ3kdW&MHS4e@4 zm;;h((&8yCCV-`y(N0jV41mpIF^(s^sY>20nME+GN)?A`S|7;uIILeyb1#~lMM2JC z3-Xxc^exJ3a!!ZnEH*@^H&?()NMy&yztGseSz!An3+N@bSh4o+wJ1;6-o@n-geR|r zM+-^d6btziPCz)w3>i2Xhb z;+e#Lk41S+?CB7#wjISnCZ9{`!Nqu@@%xg%?+X_2O8nMBNIqv#p748&%OwcYS|v=T z0dfb5l``%B2n@&|jhj17pr%Iqdjjq6TA*Q~{cVf#8tv&|>*AeW9_v!+aoipMLSy?2 zf$e`=KrgXf2j>0EqC8>yESF1Q^5z64rv*NW*)gjjwSVFbXd*0~#g5|H_+#rt5fK(y zl-ER<4wlc^$NOTE7V@XYY=gjTodu+lz3YM5YK!uOStplEVDEw5w1^+T+G95wi!<;h zqOH8A?s!+;b2Crf@sJt{I-Nq%;VtEoGn#dIyU!VQsWxv98vetSx2s9ESCDLv1qn=& z?Y1bdNj4qAuz;6SdWlwsyHNF1<2fYo%vr!K@!SBGXDrGSo+&PuAR4Qc<|87Z>{Ldu zi4O-M0-yHlV_Upx0?~9mjqz}7;Ait#(#x{%M{PcC8iTFo?h@Z3|ib=#rEy`;mPKSsrI56TB#;wy;J=J)AN8tH{ z1>6$PjSzxwS(GO{ALnuj!g35tKQtm>Y>@67CJGtD(WlWt4GowjY)_|oI~CG&qSHC% z<|~jhNLCKpt6s*fX!>=)AsGy-kG#3`2(b1dhLcG5&`0(fb^g zi~d2EW#LOEiMNu(Nw-vkD)r^W+_c^*`3;1=8Q+G@emnkq<%IV1Wl(^BI}>;!ZS22n zMidwz8~I5bvSv1rjotoewas{<7~(%9SpCk%QlTO|w}A-{Sd=HzaK9i%{hi6!j(-Gb z?3o7jQ32{7SadC|7=ikG7Ueal$outk+fb!cG<%v3f$>kCTsol{Am>EID+a}mhi4dSD+ad3SgUCIv zgtgMh)xolQe}Bf!2OdIc8A-B{S5KxrZSyAC4lsX4V6Nj!+Z42tBP|TQ?vxGfe_K!% zQLwW8W#No&-2(kk?~-NGpk)K0DZspWKK3y&?A z<4@A4ZQAaa0+P!t$`fV|mrIb-ExqO9NaR-2jIQLRAddl7X*?R$&2@c}RS0Lv!)Bnd zU^9spG#RcDWY}hbmSixIVXH-XO@`@U@It}hoz;Q+RgX2MeFD>4EFhPdBG%u3g++P7 z^d>Hs!0_$%442b4XV1=BjGuy*G+B-bvXm{*G|6(SMR`q@=@5XHmvLBSG*(ByG+u8L zc#T=WDe<}%YAxLg9e?_=;-ld(~YsdNB0o)n#QyX2)S*t*M93Vf`ICfKgS zVWJq6XkTv-QL%`*>~{7HkK}3JKdQlFRJl~a5XDn-YHZj&o*S+Vi~4%p+Kzh96=j)k-7rv`_I!bdHbOG9DQ`m%79HIa2s%~aBTX-q7K z^*?PE7jszm7ofK4JXt$U?RdnZQ>`7z?M`f5Z)eHfM?x++Z9dZa{}X}Xzga*mG28)) z{K%p_VfX_sm!SVI>E$zA;yjm7ZB|XvbsVR{ls>JsTf8@vTl=3^O{g7194FWSaBQ7J zzEM_-rj?Q{;abV(DoDwq*5m%B6io3lS%6HowODkj*_Pby!~}D3wD%$%5*1}O{)HCO zZ2%jjc(Dca65E|9zuBTZVS5#qOAykX5zss+;V@G%mBWsaK3s!CfaR=1ey13XlBY^r zC*GPNuajv7I3E%?YoWEYr#D;Bl*Be_zqZ(lm&xK~GV*{$r<#$;?M_T==QGcO+%XT1 zv$Ux3hgw|k0=OW-8!VufSnfjkU$ZDrSiY9aC5Y>*ge@e02-76^K4L#p?2FN9Sr6-_ zG+PR?#Y#R+b~Y!%pZHL-@Vv+utMZS8=b&xwjnmSPA>-530ciLxK|?M6RyO;0EI35M zAGKav_{Ga)AvML~9TuHxu}E%rV!}VmSRvr=TGSs0a6tI$7BEVjcBA}PEy@#4f5zn! zM7=j!cH%%kIUmIFIEvvwJO>OiNwb!GNPV|+7>{IGXSjk80BC?(fEV(OC9P>`Ta)hl zf^`36K?;*}e{WG}#;SEL3&b4!v0X2E85ljwqC8=B7ME*YAYccP zyMbhZ>>f)7tRqgy%JckqEF%ZVLh_aoc6m!B_e3Lsm|WYMbe9OyU1UKDDG)@u3oOcO z(oKgzwCu|b=a5T7>~BWDG+x&TytY}uDe<}vcx|;PPk3$OatR`FJ%h*0FI0vHFd9ZV z9K>cl`Eg!=Ek|V&_;_vHZitFX5~i|AO{gP+P=_rLHwkrvMR`rA=@5W9hj^hzN`U;S zF*_zOD_cM+G1~*y-fB^vFe`Am1QF=D5nIE=QC=V7EqS@96!US&!x2l%u3Soz(NuCPA=Yw;+H?u)8hFYl2OOD9r91%8f`t5I;0l9~D@A*aAw4)%9TS zBNpWetKZ>r31V<90S7q%E43w%I|>6H0{`GElqnMdEkLSh9w9iqIH_1a6-{Zvd_fTA ze_J4G66TLB%4@<*2fOF=7E723ONPsz8nb^8m_20ysl;qASot>=cz|RZNI#UveiWsKDije2cFfJ?IhRAULxmpjKb1sBYAZ5kb>y0?5H8wHebX5Q zwJ{?*!vKQ>{HKrrJ(IIs$e7vM*h8hcT-5%ua6yb`22HA7=sFrEtJ&qb%|cXbsak-W ztm>ws{YO)ZmfY^dW|wn%MNW{&eUv}73E2+1fT-74kVj&+59P16C{HG23zthUA>K{V zA`14LNX2P5pujR%6|rHZmr<0R;S^-ZDJIgokoHrAY1YNobxe%3L0}U~x_|RDc4tWK zv~~ls9uZ{KI$)`neHLsZy^Pwgy~ZM5CQGX+E4>z-YFSBccVb%50xdvd965&)zqAhg zIsgRH_gKIw@!F5_Z?q^+c)gCx)z^We=OHX=dp=(rjl5_f_*%-b56dcH?%MQLMn>2> z5FyjSRt$f|q5l3({1s;|`rHh%8PRBpeOj#wQ8^knaV8^&fNLB_7sIDesBPq@UoP6% zCPR^`T1AU?_4Dp+CnzbP>OY|#_a!^7UJku>@&q#Ub1GT`XCD@v)oM6LFhNS%%;J#l zly`qWXdyGCfKkiK!kL|pZi0X5x4Pe@wU{oUSX?a+x28swxBRTwO97K0cy{l5bn;XZ=}ti=H| z!bdI2YZ6X}z|6Uk4>e0Mkv}zN-w~KSVF9Vc>>!x_EsOGm+2dR;K{(!3Z`^zoJB{97LOgUmvo-pm@atS8yUTI8Vu%dV?8D}7K)nO?lN=MO$ zbQIB1bL4`~rH}(H3W`^GDscQO<7@PvnAZ#3g4P+}^XMkgChjDM2nvPGnzQWS~ z1?k&z|G(*vwUv|t*%wDl3*#7fgPFWCg!DUBPKEnJj`#VGR{lkmMa7H|`vxKgYlPNw(w*I_1x)zokr z88bWCVV5JXxJryxxiH3#LJrDw#J%XGbHR{<`}7dHJc2j^N@w% zGnPOy738HV-~j?2p|S&&{1CSVwT(1YX}o_CXhR#$6m@X+c=+{TR`V@LatRaHIQfRn zj=DI@DeQT5O6cyGaaS~89C?W}c1AEP3y+;9qAGbiZ4f9b*p1v-lwaPMy8a7DJgPlV zWM0y}giC~TS^HkA=p{xADdBL>jVlPNueKuJHp%mb{mf-fn9W7e5=+LvQB3iB1r|5Z zAL}uNJntS=gFSEDJZE^`AG;}s6My~vGVNWprwpA`*ET_gi^seYX|xDJmgJ~9iGtuE zTr9~Z0ZGe`<%*R6sxA!yGSYHZek_k?Xqfxlf@y&fmo?eHvG($~7*zVcpH59UH%w`eVQM;ke&>22xK6RCwmYT7#2X zXOn#TVMFX=KK;|ug?j1j9d04OO?VyKHmrLwF8B+EI<|G(m@nsWrp9w_pu03_h)Ek?y7d3;1 zB6!$THITF#J3GZL$C;t$MqihTZBEv&^DrkjChFTuM(c*KOLE+LT$lcI}3Z>o#09;BHvIanr_3TxlaNHJU$3uKth1OGyk%=f@jJr=5x( zi%Er+q;Lr)_Hec8xOL*C>4zn{b>uiDxpm_10JAyi){TFosNnwvY58*hYxJinx9%&d z2D^2y26WmsU4=DEktEuHr!(@gPSo-Dv{kw|xw9% zJQ5)knW9p7Z4AfDxjf$!;kY6_RWu7PVThp(JCt=(C0yRBE{T`-z$tNMN z;GEllPj&;&>tf2U4Mw;`D0iI!XPiY&UPmC4o-p7n+EE;-wTdwAxuSr-j>F4rKD8 z^#r~efwpB}{Pc?b=>tHM_N9WfFHwXNgI)5*sI&<8f+>>3rhXq?jpHgrBDs*R^w{Z38^Rh}V?KM>C_G#?g=@a^p1{BH;H8w+*p7Zmh8*jlIl1_;;+sb{A z<)ksq&Q^vo**0wDq7(_XtAZYkm|izPIrP-Z0X%71MGb z54U~iF?)ayAZ{cIkjJxR+yKt>x;#M3J!}N?2YDn?JEYrhydXt6#Q|3V~F(IYk{L4ySJAHE3^l)4HGQ5S z$f7xlMD87WO@yt?ry+Nfw=%yKmqRt(4$p-*UBdP}+~NT@HAMMj3+b(LXsh#9E5}!b za{T#(l;izzpwwjaX!rBVA!Gr5R&afBfb|Z4ovuA;XRY&U=a853Ftm5^v%Q`t^9wys zIjKeVlvBdY>h|p^QMX58l5Gs?OX0Y|Q>BqgjqGNOF1;T=948L&G=9AE*=hABI%SY*Gu}lM*BVt>Wrnj(vH$R^ioFslwqA=MQImHT zJ`tC&DRUMs6=HwMgv9={aiFxbaPf3I3umh2+YfPKKjrB2l)~Vf>_)}ascTBq>9LsP z8qUD^QLLaEn!9oZb`6XLtf-7J){&=9!*`-nKm%=pQ!sCPxs2TW96l%gfY>ud2mgAZ zwAVGIv^4bZQZ;z!|8i{Tf1{j{@&rFR`$yxr0*fPGMC_l+A%?pnD=FkHr12dqU%0fG z;{!3uSB8gO>|{o3VMa5!{#ad3z&oD2Ng3^KDR&%;Yg+ge zFk@9Hlgne%h@=5aA&RF{)S5eOv;^&4a3yjs!YM z>2^jDi>6r1(Qs+amx?I4Ri$k83uw?T z6`)1<>rewbz4-+($W&(N^`6fotPRCVUn+7s#H*MUQ-r`=BS?_IdH?A4j zux5?7WpjGty3AGU)>~`Xa{*MvE>^ED@M`kv^{+ABnd&8?r0Nc6OU3)R%r#Umh_2Dc zJUto)#wteD3Qh+R-+(`g5~^MlnOq|p#aji6MFp@8igLH(KMho4mdG$C`QxOO^GS5h?jG)I= z&jT3AI0#SCFj=#vt9ebAM+9Boudr-F=l0K>VGt;$bSdyn`q)h?-E|SSEtjWGNneU$ ztZAyO z`Hu_H`g&8MMJo4IRfAQoEv|AdoL+(WIN&-dlPT+$dE{Q7$?Am5f>TJwwb{t|kypc9 zbhDN4o+-1(3Y)HU7?x#uVE8?Sp-?v?4@gtl0{#i@B*~#XYD@h=KbM7TnN<89I_F_#cx4-*y;8cf+29;}oGwUSD|r~0v?rhl{0jh8p28|3aBQ8n1M zERWfiqZvdkZC59AoDqf!*DT_WMQmc@aCeE%;|h~f@^BBMhsziFZboT<_{>AhinRC8 zC5?G;Fg!{+qjOF1&N&Q^d8V9AlISXKy!aw3vvC|Fm*>f2Ru22C2)!7hquqfzh{xAa zIV;I66K6IhM`=4&tn#K;b+_|D4?HOskx4P2xDH_{c|}$yZB^OajC16uQUn|&MM4CR z1jxO5jK+=uk4`;_R^+1T^AtaI6xZ656WTMVbfKA%_LFa}qC*G(4 zn{n3KT%X-fX3S`{O&KGj!PvtpQ$5RA>sa{xk@RE`MRHAP3a6kUjq4u?TtBHGx4~6T2VX?uDv^$9_?wC9 zjTO8XMm~i##3+Tb({%u2s7nuUSwPnjH;>!PJIriNPSlvPL za4Al(75O6AFnKG|RmBz^D02ZQ%VCt12>|<(``yA|bS6{kMN$z3tp9`%o4=fp*sQIB zPshbPXeTzT(l`qlMB>x2)ww-7-*9`!3h!2&h%|-ff|WfT+MDf4;X za`FmW2|ANORQzFK`uiynru9|K(!zA96sA-jL$9-vcB4dkqvPV3?+p#YuLs6OpWEfJtbN6;bQ)J0t(8LLI%Bf7s;ZDQ zXe+OPT;d3>XhImVl`M-+57Q|9A z%jz~`@l@FEEmZ=n)$KZ{SL8kzSA{6Qrg=AF>Kasp@XrAe;1evNKh{fm(w*2@g}YMT z@U?bge-LRNd9N=z$1XK>((Z*cWTzbtMQIkfOQuBRc2|*Ii`+fP%uMGvM_qAUHSObQ zmjS7sI^oHxOSB6fg4YB1a}-0-?Hr)_{b&wVs0oT@2t3b0j&~3FpIpj~{H^2`zygrU`A~99)fx z-9i(gMO91};9qo<1k-lwDt?R0%WGCB0%&IDU>=S4-f+-sbX{6e!(v}yQMo#4wLDt-V-^9U^S<%TR3;rEfuhiVXFHsUObi(g+=HJmPG=r zcVJBztH@%1t-oK7`{{w5QG{Edt{aI~MAU%gKS->OE&y3!(}Q6Q?aD(a-o<1xf&*Sq z7fxw|&#j4v?wra0z6Ru%VFOYB%feQ*Fr@fsJX4U`8LT73wg(!6;J=M%tW`s0Bh}r6 zO9WqQ=X8r+noDxy!eZo_l4yKCo2Uc}+A1AANpJl?QO5rZ0r%JFPgC~tE2;+D%a_OP z`4X(O?FT?vOu5*3wfgVJ0(nWIE(Fjtd+yE`;>9s$^o#t@x5p~Ml4sBTT z)-pC#)M439DOQtcL1D+L{xndtv$V7Q zpja5ozT+hMQQ6l=3UNzaB;RX;q$opZ(|;YibEN?51aya84g9IdNlA(J_J-|uCpTx1 z^Em-)oN@m(Nyd3`#u+xVRr*SXXKOx-Z^Woo_edbvC?#0PHn|R^g4>NJ3Pu0CC2ZTz zr9VyC$g@=qwvor;Hu5)B?`$KHa29uq!9Jy(ffKxMO%qF4Lh^v~xI__Ye+CQA$`z|{ zJ-V049hdPoq@y_g>*dq5`3$4U&6P)yW{9ShWh~nvXK=jVZZX&JEhg6SD^qnO_;GnoB(A@z65$r{Et%FYqzhK=txNxlc_-(Jwj_`a!%L|Pfz zX_8A0UAZWcG9M{0{C^ZI`uhp7=86VWL-;V!Ynf+e;K~`=BjPq|=Q^ovfE?v%! z?OjA(PdLuQZ>Z#_@ zO9YRuX8h}`Ex{)}j`tB~wpdj7Im&Gmgsl&6tAtmAsvl@5Zxm4WT67wN@}NZpD=6n8 zjvV*OD0-^j8pgbU(YNR_2IHVb1r1|;|AJWbQ&4=pMSIUEk@vSC&Lu8PE3-|A+x(S# z3ag}VAXylHs7Z9cAklpm5K0ogpM>o@rL(BHs?<9QL~DC_uEWfxS;o`!7MaDywn(yuj^q7NEv(d(5JO#;vhn-plPZ z7Or}Rn*^Nt`>trGzDb#t$JO-FOoqQ}TKo`o(Ztghs7YEpLK67T78R^uTV03GaG_a? z$RjU96smdNbUlsptaHRLj6X@9nQ7t~=U+C3^Qq(iaz-Rc%e`AA`)A^-rbMTp#Fb4@ z;zPv!D=aDy_Zvdi5#xR$!)=Oc%ytOOwp#!y<(e^jiA4pC*{S34%?wu(j|)o0XX2}- zL|#zBw?Ir%;v>Z4L5m7RiH49}9^-MLSWZ@K+u|C-*9i>ov;a7U;cF}^XbevsuiwdV zCGdLIpkdGHyQalQ1T8*fftsYn?-I8^U{Qf+(Ga$EF>Vi*JY0JkMIL=@u1;5)C2isxJd& z4CQr3^d@U*d}l2c<2nA=j^~W;FPp-5>Nu}g7v_lTt>oY=e`?e&6R2I<1Zsakti0Hw z0xEqSuZu@jAn6R8e1AUZ4i)C z+D?o)l%rtKEv0E9A;~>~ni}sL1l|WM(1_u^&!U3Hd+LO)(Ig_ra3x5>Y;*ZU{Ls|6 zO;F>w1#*%akCL2LEGiH+8bUWBq=3wej13aAN6x5Dpm#es4wp+Kv=aLQBG#y*fGypQ zPN!p_Sj2(a0(~u1h6lV7eM0~dwiD=^TPnFH@P*EEcZgu54k<);Po(3g?syk<{nQ-~ zbvpPSbuWJk5acfbhWy2#@DBn8bp<$hVhjLp5!`sQ1#x5C2rVjTZcLqQYJ=Faok%Td z8~xH^_A!Cj?^(bp5&J_DvyWI*AjCe%83EMeDijiOj(tTTkRuB%iZHh5MHcpT+;xU8|Q%J`I7~NG@2FIMCF~ zQY0o?U6bMxL5ho-CB+366-X=u1x}q2O#Scx5>jX7+TOcQuKzQ$#v= z{hCvguv|qgVXap6AeH2_^sQ;%Cuo0*1u0{+e}zQ_P5Y^nL_HcVK-Q>~hk(9kB0EQYdg&}D-?w59p|GAl!$6X9A(lr*Byia!WSDq zVd<1iL8^DqE9H^RY8Z{@C@|qr)bB3c@5+Na4((cn z4BZ1I+z+Ni^vniQbMs#WH-BKkoESI1Z&5*W(^k3@%lVtJZwvtuffMzMhO-fE5sdAf zMXnrO$g`-yu9AOfHp1k3@j*4dL0zaoo+vukh<0e*6&($h8loR)vR<%^K|P=TG#!WX zIZ_u1f_XmV`J@L{Ne{&I@p)od5lhJ|$I@L6flZoM=~%k<5jqGNWZ^uGJNxtbdIB7t zamkIMrG_&Ot~gsZP6=DS7H5n9cAONFaX8_zgP4%e7>aW*H2R5{fd2j!ILf+GoOxNr zhhDm!D8GSBnSHP~%J;|_TpT_H&sRC&lpp(ew^EihzHL*Sn!yZ)Zp+Rg8aNs+l|$}d zM;4Qhdn^mjtqGD|5~^1K*7JHMm~jBMg)xyPd&Uag3d{YW1_Y*o;fQW`S@_CnC5qzy zH20%0sy~_%=5pl!CJE5)#-x%5aOD^#j&k6Ti|!_DQ$e1_X|mYE!GSTkgM_{#Xy(l(OK2s=>!ro`@eWTQd$Co)bhq!uYtHZ=L<`_F|8F4<{fG~A4;`n<3U;S)2f{=cX zi9~}eIJ0u;wc4W74Gk(Wj#NIpUWvyt8IS)JfG2gyh2_>R-DVz7)av=|tmo%QNPIR@gbH9Y&n zZK@{4QT$tUQiA6e(29p_bAHx9QuK_d_R-G2t74^cb;Fql4oTUeuc}+W{X7=DR{GPl z==`{Aghjy+ zfYZ^nq9?O)8Hi~&v8~Oe%!u=_-|MCrF|rUOn`+Brz6%2Kk9R{Ap> zO2s7>j}4O)k6%_XYg&$u&7)!LNeoFZV`wLIbnLFGHYRcGOP`vGCRX}^BCekkDlpi9 zzUBbEU?xyZTU4O+Wmk}*{>cn=Y$^g${njwvAz*xsMVE4bW*Bd`sGwm?_D<*+)vGMp zqhnNp{gXXLH47euvRm|B6Xb(}ARn-RM-pTaG3|X86^J13;c^LEP^aT&!nr2DPohH_i-d1P1n;n|B1l)F$)x8IDf{Xg2uVA5WHK^rit@#Gm9mOKYi6G z{jEUhuPq>yC@mp2e%GP`q4aG5YJJ^%xyeQ(5}?_B15S23+re+mYmTO&bpWnNXR&El zS?x|vV-K2+KNWO*)`BcCIzD4jLDO+ML}M0)ZYdl5T_bhg`Rrt#i$6(zk!hIEA>laN zq5>hch|4ADc&8y8#9VO;n&dnptDycW?nNTeTqTWdx4^d30(i+n#&(rO1&!@Au~4Zu zSZL~Zk3edl1&k7@bBTp}EGiIEySZEf3)dSgEEKVRX`$eflM|||8R`k#Qx>SiaPPOM zpmCoThGIaIM3_b2HBxU7NWIPiMv2sU#Lzn|DiBg9xm*H6_eqB07_b;#IhLD-VdNY_ z*csjRjW~&DNJi@1VeA)iLNiifd4g2bl}Ju)qncXp64ZLo0{IxV-fmGrQ)@azpp6K} zq?R-?o@fL=D-is&1-uf$7mzr7(xL((_$Zf45QjHtaY$p!PTW9A%$H%Wd}3S)1|{_| zA{WIqF31anz<toEGiIsKj3l+;&*Z?#1GP% zgN0J2ilt7(eMR#MzSWsBJ=PYx(+q{?NBaxJvLOE0dTh*(7K;j+AGYF_SWbp&iJ5Bs zqB2x#Cb^jus2ChR%S?#2G7 zG*{w>X5Y1feJ`ay)~mX-v%F2!;GN}5W@0l%bST_ zaB@pl8{fSuRwlouV0yHcVTBkdI3mq^x>GsQP~gW_`l(m2!d)=W!^x_nWbb;dY2o8(q+ z%7^lIa)cERGzp_!%f1|psT}U2UkWk*9-*^$HKnsO-o0Mc;PGxvY`hEC?RSsohAYF^ z(xzj?G{A^sA{10eGZYwXD6O#LFeU4*Qn6GMsjBgLyTIpu1zj^XXdUrJA{MhjmX|e7 zp;|H9oV9D#*k1B-CWEN>!`AP;V2+*jOH!l_ab_8c)RJeB*G{B*kgQ59!wIT1yLTuz zA~i|;P>A_|A_VWTrUZ`^=`*SZE7F#@BJH9+*%cDb-BWiwP{2`ssZF>wiPP81$B}m@ z{4X_CSGqMtt!b>kCb0gh!l4;;dogiPq90SY2TuJcMr2-Vt!!s5fQmP)YJUaBOkUNt z#TjL&+U$T-LTj4*ovdgq;|Yq^b|bcuVmnC26NRAvQz3lMHYI$da?hw5ta8`JRc_TD z97rowaM6w%EjA#`o;J6Taa*iHqy%tEt(vHzp>Mf>7Yb(4AM2T>T*BE&9Fb_mROgXX zt~y}W9@_15I+$gBOW8J2@u?3qH>?-ruk*_5b~qODRjSkd;z742370xT+cNX5Z(SDN?> zZ;=)xFr-Bjeym&+owZnoC}7mf;lO?hr$EIrK{U}p^$M0QP=MNC;?aVKayccQr=e#} z&8r19w<_8+GiL55d68s=;;SX5@S8aB6L?rQDZ)@?bAyxwDq1x0To6m{1_*+H^_fx; zH#5qG|7fuv`~M}6Zm+-!(}0Hr{vadHc550+;zsU##32;O=Y~9-CZHop?of0;YdJ@0 z*(qJExLSO{|Hz#d828{8qYqQUfrLAsc_}R)P z82;94i^ZW~w=^WJp?;u{^#dW2w>Bk`WbzBD2AljNWb)g>c>~b!p*|pnES>uHVbGM4 zNGT(B^g1lwZjX)+k>NnvrUG3y5b)iFur0y^gQ4I7V8k8da0a=yKo>+uhZeir;g^W< z1f^&zshlkpD}&i+Xdzn}bhqz1hEtD`o2T|paqwxx#Xge+1Y=5+Q4bl)m~_sNM;DF( zKDv(@2CG2VrHs(!)3}SwMIJs*havW=05c35t@!G&&PuMWuLTG4h~mvA!ExESUGr`&8xv*C0MpXif{&|z!lpEK|(4zt03paHk^N`2B= z)h)z$$<5dS+g3?P!^t z1qD8*@M*>;PZM_~DPl_cj#I9rJw?H9TeUocAynL9Mf^HglVoS@6fqNLmEn1{6^dO# zNDWQI!$@-RFj*B@_7hZbPH&kU8R>J$p9)F;he8COZb}463IAEuU?m)iE8&e&2`Qf! z5+9Pka4hGIDyJdH7Atu;Eu?#5XC|5%QdZS~fu?O^np#qrKo-e^^}+XPYF$(1zXVl& zrf_UVF^7rUk~}fReETU^Ou>FzwLD|tQ=DO?oU?o?l(HCSlcAJzg!~yAsh=dPBWpo| zI<|lxS{tKZ3OWBWAO_jFl>Rg|B3`U&urik8%6L=k65I?DDhQLaE#u|`59t&r?5Dq9 zV7-k7K1#7LLb+a$d+%T|2slqe^kgfFb`*y?`uo|cP=bL)RUPQCc$!JS2YE>RvsBbXO3HP``{R9oD|iVVSMN5FpS9A zcSUjN3R~lNM#HFV2s5wLfO&Ra%ken7G>^j;NIcA#UMW%!lFcLAr3CZ1bk}h&RpA^{ z=%I}G#9T@xUakF7A@08!NJGBfM1Ptxp7*L6Y&=iKjpzD3g;c(hMtph=*yOUbSaHFE z$OufPo;FOVuEyvgfzdk^e9d?vuO;qD)MCo^Tc=#v6kB`2)xcKa&UiQ#r&#Ge2sR~+ zLUu}bXPj+@(k)d2*kve(){4%kuyCbT$rkqN{D{$i=Ou&PgL|Ik8Oalp0E{D_cC-f7z>vW zCS@dI>&E6Ua(W}5Kse_JUj(CfWft{>ZG&FHL!KBMWW^6!KZGG09>I@!qMJUnJ%pd_ z(a%aLk6#PQ#Z({de$ZRE3qKFf&J>GfEIW9{F{l;f?ma4TcsMOAOAn((i@ z5DCB*igq;&vi61X7gd$R#e_ouLS<=dA2^ML3y@2Hu!7w)P&|#_GrhuCcn*%6AXiLZ z+8cpnpqm^Mb`Fk%WPm0pl1uj?m3JnGll^nTg>I!>Lm#WSoou;05^P<)dUSNOd*nnpTP$=JOM|P^-m%pv8LS=)&!rmFBGu?Cd&8hImfXWu zJnwqpnhhY!!crzx)eSw--CQWUDdP^NpgZT4Gu%zKJe)@tZCHqd3h?FRt>HxwsNp`P zTMGQXV1(FvPq>Vs!6{%534@9S$Su(*4MCn)a!1uqDBj}W1kMW|@1uy3JpMsUXXlF~ z;qwD*5|_oEZGf8R@NeG2g#uB)hM?d@*qnr>fWJbmz%jBseYC|~838a0VRg#6GRPy; z{T>KOF_kN1z-p=gXOl$;Dg*Iyi#0=R+uKV-p;}~+T`2l@wMLeayi9YV6kJr%0r|9Do^zpCs@k9E!9ILqgW%Myb zA6feND1Cg0KK_9|{*FGDQ|IT?$6fUCdir>bK0ZSq&(g;;_^5mdzg?tOhmK{iuEw@ zdYEuMOtc;**xgL59wt-|6RC#@)WgK-VZ!t^o=F#JSAaA=o?EIc}+sX-cR3H z!VV}28>DY6VPBzdEMb(RSV$P1B=x^RA77;pmNhyyCS;8cZwOhVxN;$D6ecTVjpF8n ztkGVqkTu%36S77d1wz(nWlYE#P1{-4cur9X7nnAe&A@_Gj^=og|qW9`Gm!8szB_H(P-ir$a^D8eiTa2%*(1okWpP6Qb6 z(RZETJ;c{r>@%9O}UU literal 93369 zcmeHw33yyrdA4I)wj|rKomeDswi_iOc93MtyPX9b+ewV=v9avLK!S8Nb4N4d(Tp;8 z#`_9Rh2j|W?YYzPvbfk*ON;#YNdke*s=T8K!lrZ8I$`cPv ztp2Tu6BDa~wvs#M7b~TtHxbN1j$|gAPnEpF#BCF+GIN53zLzX#iv?96(~?<`StvfX zl(Xf$XM76Uc7_f36O;)R%s=EEr{>I0_fBxzsOs!s!KjPY$`hGonX@wUf(0QgiC}&{ zTks|ll_581cgy8ccBoPY4g~YOY|00G!NO$T^?fAbcT2$?5x-hfl~MgNmRE*=c^fcuhfD5g#-z}m?fJZ;N;p8?Nfrxb z7s#fZY{7Azlv{R(T;J<;cDc!n%Ijo(`kwQP1t(oB0oq(tCy0~+-R8YMCp z5+^bjf&7_Ez}QRi?=t+m0{^ZAX)~)c&&ynpxeC~yBS{M?v%3iCalF_72L(R7|lAFWSJeboNtf)n2qu$!zCqaL+;xa+3n4}>NlZ={MWwr^_ zcGMo?^eN)JX6LDDv6`x$mF}O1Vytv*0hfeAG%%DeCXbq;^b#n4PiRY}069I92@dN= zkNVJcQ?{JUWU@!SlHcX@Y_F6v#ZvYTmpUe=%T0}B3)@D~6O0v0sV>Rp*=$0w1AXDj z%q!yLC1^W7lHcZ!y41n8j+Q*%D;>kn7T9nk-5<2(-2(cYVWhQ>7RP{M#>?j?f{sjf zIFrY}@_<_!rjCz{?7g9pU8xDJITLiir1iKx(vnQL(oXXi)7rYGG9g`#D-68n z1TBoGVQz%Sie7C&dAL-pj86K*o^G<3rw)74$GV0O&T=t7mQ9s26ML4Cay|htz6sKQ zTZ(1aa6PZdtl*eg0pXDG+|*=P<^=Of#j#20gg^`2=+gM4PlnUec3}I#?fZ5e+I3JG zNh3uuAvYhxhs?^{T>Oa>Nz>1QC%ud2wSy|P6+clGZ$xck7N-TM;~ z#7LS3@&W2iah%T5bCrS@C}W^cF154z;8<9sndUVI4VBJA0v;fdV=v5Z^HA1t&s5Yrr%6~CZG=7f>{QlGe zUWs2f81Vs%{Dj{loG(VRoRDGEWlIH14JjS-70ViD)JT0^AoX_^K$=K>)*`<~YBrd* z@TRO^E~38+^-H~L-2Ox0_U{(3O5A$Di2rAipK$vw=Zj(36$Znyg>*5VYnHh+dUNM; zH$4Y`8uddadcSN6z1d*hqV44}X0~V^QfXWyP2<=laCDl$u@|hl$Ra=IW@L*@=y^S5c^#g#50Ng4vYMn*s~#8 zZ99sEbUvHZor{s8@%x;>?=u$gO8ojDB%ij(PxyU`^Th~LpAsh10J%fON|{!K1O{Y~ zCXJn@P*S7)ZGrZ;EYL8~{)R<kZVZl_Rmc#*l}jAdM20CdJ&D$NUqhW{|*^=gvs6(oD11qn=&-Dr_tlWaDGVF^#C z^b@TNccCg(DF2oP3MR@gx5%$io(tZX+1=7K{9Z z-5WVy3`37>hezS~SR8Snvtns~oHU;1V^oLT?Sy81KqWaY)>+^W`U5-(0QoJA8_O(; z^Rw50CgLXq5kF=@6qAS_w#cuEI2$6eWdEpFm^4pUm8$Xlroi*-7H~^EH$e!#Vv(Ql z{3p&ABP_=-^+P=Z`UdH~VW5yU9DV8?RM&t}!uC{(ms254+TuNhz~XtDWnTQMOf)@kbJ z3+B`6;KZJ}wCMG9gIdTsUb=rA#f$}P?58r8=5F2&=3=Iy;(N|j zR}Fyk0}vels;iu1S#PYH#sO1U!WFiKwhS#Y>NobiM3N!c7taSRcvqa*@kMK)i;!IB7sQs~+g)J6kFBC21F>f;Cp>gKK_5CkNkP-k%6G%28Da@sZ3pig~?F;_>o zO3nkJFGtt=GT(^4ubR^0v0Q!5-M|E%N*((yJBvVm0!W6H{C5zYVW#w>M$4F5O z$z=qq(~YGi<6NgYkAFd z>NBk0^y&fTpA?wu9gS@YTFH?XhTdp2OhD<+TF@7}FJ&v8!CAdVJ$O;y;w97M=_f4O z)I5!^mn8npf&xvfyD!*PNbT{|!k~QB()!=15;gyq1*8(Q=Oh0QEbF}Q#nAwwgCO8WRh5jXvxFclQBOqjT$r=7PT-L+VH1ApRBAekzs*F zeocniU~q?E@XqR;<5kHT)8`3HS6e_X8U6xb`do|rgz06RFUCA=w`aH2}FWRj^W&t`zuO4UOkqhj%5SYocYOVQj+07QbF+_sD3T zmYKs6+*6fH6?9ZQ5~RvT+~e7i%7`dGkjHp4->7RlGF!kIJ;&^|0rHOt^6M_Kb#PFS zMfQmE>D2&7yrbwz3l39%7&g%vthT1K(OeUSbXyvorh52^W-&5*_}n){M<~#ZS5#9` z$`*}kMTxI>YF&Ig3-Ml(cgb`!Nt=Sd0;nMJrz{|r7+#P3e{PYVF#I^@i!lY)_49cm zakfZkIcq7YJ&yKZw4c(7F1{Ojt{u{iQ>w=h$|+U=9KR}X)B7cXE*ZO0#5Z)^uhx6mR#VLPAm z#YpPT5NPhCaF(W+%woYppY6b@v~tEFKUDNi@dK!BQ?Jbs+Ue8+oG%qPYsqcOv|eRF zSrXo`mD<89KE?}~6kcNI#TJcfcE;B`HQ`;%ob$8CJh;=+xJDDT(B1-Y0rg=Es3n#= zk^i7Ye!_A;=Zg{AmkF~-UJ?dR@QB2snpm8nL!2IFRcQ?6XNr}4icD@+?7`u)w!$AH z53R~;68?lXzlUd~9YfM*sR7V1FKDQhz}|dUEZ9UE5H?X;1H{L8Ni}67Ytg8djre+} zrUCPe$pika<^3H14hX-^0!E3`F64i+MSjBRAg@BQJt6mL0`Lq#0aqTK}8SpeHi zBCW+AqTlNrLXynuj8w1~4K+}6^+L!o=QS&JYtnsOknW=vq%cYMm_>d~y4eti`49)y zgNql9)i(rIU$cNxVs!%;{bh^%gw>ZgU-JS1V~Dr{BnxExSTbNDaaL2FHAk{s!zMGy zt4mmKES22xMglRtx;5#3C`k987Njsq_a7GdHR)zUAX@fjN3w|XK=Ca)gYZq`wQM2V zhz|U*b>waYs~1`1C%jrYUyMk+kilc-7b+t|=n}*D0%F;iTsqIk>ZGy>e9$v$H$*`t z2{T!xCe)RJP*+$WE(L%H)n$=i6KXaDV8KD2!;umoUo~bo3e0v{Kq@i237B1Pk)JSo zKIe-Ofy7~~A`?e>>WDYC%lW2=qeE_vn00pLER)PflaE-url=%J3}(7oO|X{j^l>0a&Rm zfn01D@~{OBzCxMK#M9iQ+E*e3hvzL7>t~`WO_&D-VIHtR)FjNSE%Ix^%m%v`^cPDQ z6ibH7SB=?+1!fBDNCNoG z3x?Jp*k=gMkstT6$VV znH-Lkh0s?b)(9B_+V+@nvA`XXC2bqnnvxlK=`1#9i0-U51G26bWYvn$l!~siU>>Px z*h=k57x6J(W~DBW#5~ucQ7tj?^-fI}TA&LEB`60~;!SJ9000D>w^_g`@!E_0FR{o^ zc-_MJ>TAN0bFqbKy1oXy{lOW=JuK(&|57SY&i7s zW}7~HvQ!%cuJyGRXcrC+*4IGE$@A)EF&eC&2hIL{v&h-eby-yW1_vd;i%ropfQ+UC zuzzV5uv&CgMm?zYwHDPcs7ZBUwc3vmtNS{cz46>?r*o?qVDeF z>z$e#)7nq-DOfR(gwzR|GdF=YAkhsLB$C+eL;f8W`3buhaK8G^Ot2@!9@8b7Wp;Gv%%11lA&@lha|@24;tIM1-2(FpqJPt zz_>ds@)NdWoG*sKw=}_EwKBMSCw3wY7ceQv2a#APX!QtQB#r$rl2fyRvsS+*;cEp6 zCoD)}lJGSa`85e=Ltqvh=99isOysM^>>~oR$1EU~nC%DCAGOF&n7yC##R$in>W#9o z2*~HqDGrVv*bCnv<&2iHbYz)ki7Dg}N6x_;Sqto9!-?h2=Y#|KfDuhkc8K6u8pec9d-=+ma?t3V%A&d|q z>e(+!hh z3{O8S;Npt}7qxk4%0#`yLRQF3hON||OBEmERmK$1ghiuTK;!Gxsu-IuJi;EH`mCR| z`V@O^M}s46xeJjYcM;{n+2F|s*mYCE`4oEI2nw%)(ECOdddgHMa(rw+dW!WP6OexS z4jhm}bd|}siPZR_Ezn!RDRBSI^v5{!-Y^V(?jcoz!{r~2oaBGtP|-;;JhZr4z-kHI zIHNaGchfnaXa*T9P8tyJIAWWUfsxL+SdkT%SzuyU#b|f3h!qASg$;eKxETg@yH3XS zGh+RvIFy6k(JQSlo;BbM%Q1_MfL-rZ#1BIhXyX6}ims5*Gh6fN)qqUAqmsu^Nuwn- zvJBK1M%^7q32$u5*L4sN9MQDp)g5O(po+D0 z0Z8tP4W!BL@`e{j`KF`dZ$8A^IWZ8&Idw7Q64y0kalZ;qw5PGn9eXgyV7Sf@Zv!5| zeP3$0KIQTX%iMQJ=~m{xO@FLSr4-1QMG?~i`Cq4BAg?EK?E|$MT?Nv9O9?k3NhP?U zlF#obj$j|?q+4t3Zm0Q8L|us!E6r0gqBMh1*}{Eun5>FiN%zjf1zdqAZsw|p^Yw#+ zb(o31H93+(n8|MT-DUSHZsej_Fm$wIkb^QE)Gs=ztbf$OwRG5JJ&Jt}6bBZQC?nno z;*wLB4UG+ZXH1c#D+uOPKmx`UP}!kM{wUW4wGA~@X?$+ZBIp@kvey}$JsEzZN2~P} zB$JZoPP6@El7A|)TbyK%!`^*vGK_{O>Au&deh zxLIAezhn92FN!I-%_RIQa~tW8bzg(qp>pd~33khKfKI7Y@aQdBoL?LqlriM0-Dv2l zx&sNST|DNMNYlkWYDtc&!!+3RgnJv=R3HNQv23y8!vshJf$**z;vUoLX_`quWg|43 zt`}F_VH8Jfud*;OFfOuL7#Quew=n327KRBxd51!Ik~56E?=-Gb#cSLc6X-NlxEB@L zIL6d4=-U~*E$SGbfn-#Y^$dWu21~W_#yS0YL;k@R?PGmk`dBZxv&${`xL>a8+70Wj z#T^|i5~E90S7@#JQJ33cH!qZwv!izyH2$C zPvZhVDVI)P&${H+wd=R`tzWx-t(P9!klNhWml|5TW#dp^dc%gkwVQ=|)!gvmHwk4W z-0V}O8)&cHK%@|rC2d2mRyGvF$0P+JQ8N)$4in5k$?FjYl&zeVH9J<{nk^!07Pcyl z*}^czu#74RDBRtE7&N6t{s^_ortEpmprZ&MG*v8Y&+ORj6x@$8MJxC}NCh`X^*4DK zyc;9>?WJ<2QbN?T0uSeBM0wZsY;`wn@x09&+%4-iZ%S@X_x1H{*tBlL#vymZ`c0cR zrK8Fla;womOLF&r9bQUeSXJN9KsxPIwGxpEElI(0%mBdms^jO0kEUZ5>*tXt73b%P z$oyt?($AaxMNuL55z=-{#nGRp{Jck13HI~u1a#U)ZNvTBZJjQT zFK(EcMmd4nrxlV4Ju-wFzi@_`w<(b? zg2^sFo5ZM^&o8m}BJR(iigk6EJ~K*l*Mx1=w9kcS({Og4^Ye8Kjw`})h2!=T`W#yA zLtZyo!X2sVc6NE)nv%TS_lVo#Q1EX8_F9n{@s+uMw-8P_C3q5|^RJEb%Mq=VGBu(# z9Ngd_=39=bnYo=|RKQ8|a_U3XZPLma?ONZne(ToFTQ_+dliu3Ct=`%V>-+jPt>5fz zaksc@(;L>Vv%Y-#%mPZWihG`4G@!d(&vQ>i`L)3amJ8*s)ALL+&G9n~WZPqUo~1jA zqqXK2CZ#J1S0Ng(|_l4leyRdY$6{grd-3m_KRpj%EtQLLe6BCVlP2 zt$?HA9sy;tXqJFy6V;3anY?hOfo~w7g&Y_^J;#6g0MMkpQjqovMJUnh#m@*zi*P^W zNs<_(RsQXfH8^@hB$89_N{?-?i$@S+ET)E+#Tz%tJ2zIcDX*bQx6fkZ&VbN|6rfOc zsIeKcbfKRm-DC^ikaS9%*;cNHEXO%qcDC~OBeHGS%B4vXY*+1-Ft$qYC&Pt}x07Uz zV(erG-<_lEiyUHACo9}@2ZSmono?z&gWaP_u$6pG#7b_3b4@!yFvUbyTi_2lUeSw( zIczr~qGH|&Axf&v+%#&?$h}M;cdG)m89ViWfuw1tg55V-%!mm-ST2LlV2uiSmg*cZ zpT1N-7@>qA)g8>yT0$+pXgQ1>b&~AF$n*-(8~VZPXwuhLahhs>R8+{lLWsb z_dTiv%lAVO`M#Ey{6-Lnu9%W5f4EdTkI@5s0CDk;kD#R`xQV+AkjhBYbQyq3t63dFzq>dOdK| zefRd#aD`S!_F|_K?ME5Nrm*p(jINrtn}~{faVL%}u_}_MudBOjpyVAxk;b!7sBm?= zp`1}bXm<*EQVz8(C#(b>c53=8K@cr;3<2!B^yCOznYTmkrf+555|u+W+zvY7O_#8s z54U*8O&+D-xrNj=*|pXAs+HqILOC9tl5)H&3Y2zMd!JPfAq()c{1+C7Snu%H>Dirf z`kcF*gI>}@*WSZvdpu7DPdf4}hh`K!-k!+(=UjfGro+|ZJs%JO1 z_R{ys-EnLOPn~B>2Y+6;t5UjMOiZZ!x2{r#_Q)*5f{nu0p?&v=l>F7%| zrAVYuu8gz&z;1GCDO}Qcu|oa5*l9u09pvqgBZxGc#T=+Ag$V;O`N)HMti+1RO_(%9 zP{BGYT?HU62UXs|>1bM$^ZSCF|E7r3j7#yS23bv)B6xaM{fTb5t+g5NBHRfZ7Flg> zfSqCg;Wrg~B~)y^{s$5@eP`jZsD#a!v(UPPCk+?SAL~g&IkWX=QJ}Q5aPe$A3umh2 z+jntdJ>|%=ltSkl??y${X$2&8`s(z_h~yg1z=Le(|*WDD#X7!z1w9;2@#Po28& zSf_wG+8C!`(e`o~cM$N#I_U>Q(i9zXeL`v1G^MoE^>?ch-1UDh()ItY9Fg(>KRh@{ z{kQ^)x59{BfhsB*?$E3x5tNbocg%d@ZeZRyh+e)jGU8$-Gn@-Es=+P8>JkQC@#ICy zaCJ+$17`|2n(WUPWWQDsu^AWP?+o(C3&L`q{(+;U2rtE<#up9U0Rdg2Dd>1&Q9i-qr-vF!>K&)HS#HWB6vqI@?9*agK4VVg1Je{H1G}12Jw)-25 zB4jsZXKHRK=-SYe-jv$3DTxjCYf~?d^1W*;bSiM$& zSJPLo|BUd?R4=hhs&0q2LVSk=6q#Nn8pR_5 z#hVqtHYmzzUy9u$QH@w4&+vfNWRk5BQc`5=@1CO86w%loq(HIh+k>A)C}`;Fx$NEc zkYw}}(>+Qm485f+H3htS^08WRNE~C-c%@Jr9PKaTkbh0xiOZtMl>03qTX#1lTckdB zsS>O{zmBNS%~E|B{ZuMTha#}s$UGvkDg++)R1cve<2`tagz<_sTh(i_yh@Pe4-}G3 zsNBA@&NAo|(YYkpCSB~Nb?&B+*_N|Yr=%@KG1j*?f?U(qw|(=XcloovW!Ejnt0BI7aQl{z%PkNO_g+Zr$&SPPvZ>$@)lBl0^#lAytADZeQzJ5sh=< z@(R2s0oP5DQCYprqxkwnRyQ0LoIx^f2uF;Nyz1n_OS^>cO!uQ)Zqtt~RdP@z1nw>#k^Hfosol4;vNNaJI6D4Noi?CPU*G@VjB_d*C z?w^i{k=?p8ljDdp2qMKSHdo(kARbn`>h~>k=8kjg=r>>tQ1O6ew#8lsN1 zQ2!W9wQOJ3r>#4>#&8;J@&`qf-2A0H6&)rHUK~oKG;(RxHk2y+Qv}HmT`%wxHj#rsyYC`W%uY zNyvywKWeCS$X2DO%{uJPx}MEzH})lmaJq0y+VzqtM7eO+r`=6BX}HPTw0`~O?#6Qn zwqE};5OT#$HW3$tm2o|Yor&m-veqyW%SMEn*0K%qn^J&=MuGIssJu|u9Cz( zl32^e8SfGw%M~W2m9HmuRG1;41-P_LR zJ&;l^A_SvP+dG7%PX_Gmev^ND*+96bZ41#7E@TW7KyHd35+m)FS6jpQZSz zqqx?d7YXgzuXLfA@#uwQexw>jdY0REAg)2FdPM5mZ=R^&j8Q3jM|i5$O^sv=+eXzv zjL_wn4M?J5iDuMzw=YjM{r{_;TWl+GjJ#TAS0f`^bzLwYDi^WKXSb76O*29cR zOl6lbDP4p1fB@|^sv#SxC(vH0N-$`vB7H{i0t{e%$bB-y(@YYe@W`h;?5T&%=^|~Y zCxa-Wa!OM;0~Kjp-!5={tAgAHSLr)mMdB)vj%fI+i0X|MydOqBiK)ae_OjEnAAP7x z3Ak{e=VmvL8``_f=uJ+~4dM!BoS5sTUFzK;l(Vg8c*en{IKfurePF}%tw?tjTl9XJ zm7px|rlf!XSfb9jyfVH~a1oaBt z2jij<<<~UtM$BA=iV(S<3+4Ukl$3Wz74AxTgS+j-{s6*0@|s_GoLy?_wA~A7$WA*P ziqb4{3zyA=yRfT@>{{gRN9blc&N=3a8@OpfN4pG&_|y$gR^1C;@UVy7hd)PKDSDm# zG`=6pq6k$%n;Lx2a}XTfLl`KRg5jwdkii|)gWx?Z?OelMis$!c$|L#f1_$&i(C{e& z$yi7_Wlh4FJ{KG{=fE>_0?eF+(?=5zOsEKhmo}uCl-Z?K#5FLR^a&7jHIOM>F@T>g=TjMErA_|33Gx4xN{ZDh9*KwtC%jpzv#ros>~&~p}DZm zo=`-L@v8hJrALo|6-c=agcShUh`&L*qG)Pj4+%d}9dOmY0jruNdiWf-QntHFsbWT` z%lpNkaPk57M8eR!#P+59ZK$!BD_gkkf6|@!nc{RZGspm zNfjB}4hnwB(Jftua)?Y{^_s{5?5Xo;S*gn(#Xf8VZ3(?NOD`;#{e~2+xH~C;P}3iM z9;hPRoM7RYTPk24!&LWOJb5f73X{+kOpExK@4%ceW|77E+Tft>_ftbV!;Nmfx~C+Z z5m6mh?jB-wcyq|*HZ2&&&@MlO;&+%##x8;L>%u8*aA!?CjK=F^Kx;t*rpV0%Ayl0~ ztC}uS+%?h^{B~ySFfsFFV-RvLC(3JuQK3q8Gr@Af?b-p~!jI-e-K0%3a;8aCzK;!8 zj9qP&?w{m>PEeG|eO$o(QTo%A6@5&VU@LkgYDM2F+s3*EJ3P1{10D{qvbfF*`}ZfX z#gi_l!#anbEMCY+*F+uicT zVOVPsRf3oJaq4nByoXQBgM^CH8JzKOYEFGlaOyLP?#)>9myjGwmPM@j);rrB{1=%^ z;uKEh!T7f593+1|(SAaT)ii2Q*s=Y69H`mZ-}yPeSeVE>bb`FA%)OyP+*%jOciJE+ z@(|keU)K%Ul8@N~x)QGj{*>i}q(pmr!}@#Ut24;?jDR)DxbIGraj7Wd44c_1Jt)K9 zHPfQYGiokA6bLp-F&45-&Q7VF??#G3F*j#9+xA~IrFpa-@^e*!ZDb{CBVVmrXB&xV zw79Aa_9^8Ijq_?Y4L4y4$uG|1PDaE88ZJ1iE?3a6c7xVE5%oszbWKaPL|$CZ0}<^iU8(II%TnEqJzS8}~(jO0u* zg$H7b5Rw8>=?7>tx#6C{9I+RL(IyM4#MWr#szYh5F9IW7t$Z58A&592Fp1}Q6uUVJ7gECC8fOz zrQnDD{kgYlvS<)ve4;GzLIfj{6AWS2r$D7vlPQ zmAe_$=5C?7G2LV+6;sJjDlKoH+KnTuYN~{`#gB{bj6dbl9&^iwjfGSE3{hlUm$ z*PjA%(DI%bJ&29_m7%J!#4{cbEmI!^{~#jor$0^W>hDE$)rc8$q@kNkE7@xF!EQJ& zXE$=drE1Jx1By0meE*!}d#L`^291nwP(>oG4DB??C5NtDlt`IL3XI$r1&h8gB^JH5 zs{J#vhx_Iid#F;LO0>4DQOE_N) zysZ*m393%eP+ljXyvCx@2$Wkb3Rpq85WCB9>5QVMde<->7BKc(G#P>MfJFffV}1XE zSVU*5FSMxd$4caL+pzm3Dom>~O^Dm#Rl5tTrEefv7){h9dbuFcT^0~Z61|IrZQP;& zk?0ubixIZD`LcwOerm`b6p%e&(NF}kS6dXYg6uL3EkfT8{Tx=n>3~4E*nt&Mz7s%# zZk1Q#_K3jkPb@%<;P$XZ0gYQ@!SuPl#==$4aFc*jdw(P9sc!=3<#E$}IFjMtnigL{ zSyb`31!|HO50eD`qeTHL*w)nHGhAraBJ#+~5QS=b}0gdyi z`IFQ8naW!@EiGB;jBqiQUJU(DifGE)rvgby4 zTqu^~727tu#xO51%vk^&!Eo53fX49D@%ncdt{7g=8#e4Y{noU2P|)H53)Cbn-bdVi zwM7ASf`qmL3R7g`h`)aG-(7$IB0r})*Pr+n2AUM3*C z)S^L2e1`C1ivm^<_U*`c$)nC#2DhoPrIEu10XfC=M4v;E3x?fNiUtyr+*2s2@!lrz z-eQ491n-R&1vK6>Cv=Sl5eFHr7)h9KPM?SuO^u|WhHHVGq{fFxPG4qGfT+v0Nw=%p=^82)am=8FP5Q32TpEE!F=(1@#%Bs}=e{2cx-6z-|kqe;=)$)3vs{IT_1m=yCY3TRTC zIvBm;9DHtCo!RWRqK-6dmo!?K<;}9`L?S3UUe8eqd zFFAFZd9N^B&hSDPme|P%%gI+-ahDR+>m-VZ6|X;Yz!Da)uqMpasurY@oR+pV?Qasa zzrli(5!&ytD4=OSbCRfg!zG9%mGrQoui)W`h$LrKszx*;5KUXaEfM`Q60)R40YY?; z^TnvZJY4iEq2%8hwz~yvCoGzZz;=g40V~+tomqq~#$bT_CWQFLW)bZ8;Qfz7h_B;d zF$?D*anPT}3m7W!Z`xTt?3HjtkK{gllO80toa35C+D76!8`f@68^upSOPa2)6?C1j zAX9{{udyhg={j@5-Kh6{Kf@IxV=WlRdB>%cg>RZ3pAz)=qy>7C9-kx~_=H6PqDMpc z-n5-YniblF>mBE#3>2PfR2*>9HrE}70KylWJYeaiE}RWBZ)VC5BYaOeGa^PTbOCkB zL4{QAfLF>R#?=Ta&(g+(gJHY7bi1n#>^QhpEa0|-4_1Do_VyW@^uvWNrSyBxeMoGo7_csP>IK> ziO61Y?9MfIJGAZ!4-88U(FvNY^PaAqWrqSz=ic zOUW$nrCSPtjT=npy>#uPbUf0}z>?C|fR>5w`q&lr6ct zVddmLoZ#323`nRC#km*i{luPt!NJRMz;%^4^Rk)`z4SU^)B_n&`#^sf1(M^sID9sq z?|H&0Klbr%r`T(J6{k2ggAoi}rJcoY;IO|`4tcJREG8fK=nOh*f~2Q}>SciST+akE zj>WbxCemb|b-7UsUQpud1|+7g;jpf`Gq`nD$)fl_%k3zP>i4JS-h_W55n9ujRPqR} z?8U@k4s@itnV?N=^EA$rMH1r=l<^6!m;+_Y_tMc*49Immp|;ofqUfE=kOZ#GrRk4# z*G&h^lBxtBT={DBfZ5tf(D29zO2k{@5vvMkm^`)f-dCPv^9407#{@2A1z9u4RKHHV zmPqjdtu}1UFP6#(z+#@i`bcfeiUpkWb+H!Uvg?f1qk;(6%1$@kD#J&PaTbo&4xGWk zs2zdX!8nm@45Gdoc7#qHqlVu08}OMULZm!gPm@Pf2MX!ZFcJxJaZs3Q%M(14(V!~{ zcFhPI47)f(6+(#agZx2&ZdRSm*^{{~O>;+73=DXxzo6pRaK-W4s>o=E0CWZ$rzBJc z5L2u`!H~Pu>~v=>aL&6L5T=%;En_p}h5A5Teieo)n(7M)TkIBj{Rl~V+&?qd(a{AM>4fuIgi<*&djxti~s)#>ZgSCFFq zQ4MvDDg;u!YZ#9T7_$~l$_|=gOj{JtFvfc)bgpW*MSXOxO0a*r=c?wxgHU#hertkE z2!i~f1w4`<9mKR(Srj0G1e`BsO=`_PTK%RVoe04K&xICeWW*E|LPe~a^TLkAqv>)Q z=l2Sn-(!J71m|~K6wo*~7J~Z)ZJIbBH@8@l_|s2~(&q(Ae`f)qL}?kZ@v{~M2&KOk zpw`#D7n^KEWC0rdH{fKivmN}_yyks2G%dgd>2NkJGppswS!_Ym@kv3)?^uu}LdPd8 z3TQgchG@(~*DYm(e`}=Xp2xn)9Q=t}0Wb~o*(4mlv_$G>oG(VlyA9zW=8DVGBeX=w5kqH+91ZLWF&2bTc?MPJ~@DBJ7S}0f{4=kqXNr zrJ}4va%L;l)Ov-W*1Z)i(#S~B2tF(je3u2h62bFG9NuA3 zfDn8u=Zg`Cd$l;Eu!bitswC#i?TdVbTnPq6`7yRKirZcgCWAC2|mMp2)6jW=cqdVW8aOQpFIFPeQl=d;88Jo;lj8AuDwt5gYI zXufzZ*4EVY6$Dl{GLFxUMw_9>F(O@|*iS}ASUO<^+zFNOB1l`B0`kV!LUG^72`CpwM~cXt_l|j3j88LUq86;hBF-hZi7;_# zb#8`Z#!*?m#v@vg!m1kZhW-cw+q-_Uivz>qhlc>vh2ii#8AY`gU+9}jYDyuF;2wQA~!w~ndR3hlUz5V$gXwg zYN0z@l_oT^vB9BENh%R^M^B{R7EYwgK_|^}tI6%{rE;cHa(2SO?UGaBq-3-}qH~cH zp6Eug@O}lXlW>x;_%X|^C@S$p_KhG>+<3mxa@A#ZiS>4UkHF6Bcgp(^Cfz*IkDhjh zu2m#!%Aw<%ylC+m0BMwIw^%bRZX4!RQPvs#;Czx>y(k~Z_xKH0+|k7Jb}f6eFs8D* z3*QuCxw6pNQd2rh{asO&;Qnq+q`wQ+?Q@T3M=B#&(x!98)WL{zBectqMkp}YP+DQf zVM^9*R9ma2QdHw}kHF`og02}G)JMFLh(&CW<(-Z*s8-B2r*G|A+q+=SWDpg9*!sN^ z%(1h6af-A)$}B^XTJkLN+KE&N@v6i!9HUC}`;TTvr6!3Ng;?&rLh#^wW*r|Kp=#@Ob)#};eV;2y3(x~s!e14ae?(m6%Ng) z+cx5$L_eZ#uRry@7?HWpTG`HA02Oao)jk8pOkdTmi89JiwfR1&gw{0q9jYfaYUjKQJp_N<*EZ_?WWZ}r;AxO(BvIv&m4di?^v~d z0me;VwRS}rX{c5kL=IGd?REnKOe%PY&B0?=8u$xuktQV2rG*22%v=+8yPWEH{zvR(%7MNig@(|G< zWW-@_O+!iC(47xCgbexYQ4fa;=!}wkG`z;OoTWJJ6u(y7HO9vecwR>`%rB#fl#?&w zObANz)$@vX%E11w#7#@YMj;XFrz8=HDv8h&CvQIGT>&Zdi`b$#>utv^XE>CKOKkMF zgGJLf`Uj#cGmQQs1ddGgghpALeNL9Px{={$D;s0@Tdyw`kB+#dqtY7c1chwwWkMux zZAv7`w|cQE!6yGOnfy7yq9JJb(E%Wau$}snV$hVLN+~0DNlbrvlwR z;PYjMur0y^gQ4IKVALJv?F@2mf$otGPcink!!Hs233Aa=QaMv9R)#ZS*Fv_^?`_|8 z496ftH&3md;vCedi*+Um2>O&T#2!MHG3lJ69^F6&_~_bd7_0)_pE62!RO50o7lHXW zK89GU0@%39m~x4!^D3x&+hMusN*B7cy?S#-2wD<0bQn|^^2%c#8Y3ie{|eRws8)$S zT_j1crg3OZPl!KD)2aklTfZ6!9m{BA8pVZXvzTH!hINiMpe@L=g|Paew%f z8+U0ooUW1a0jUUGwr2hr1FzyR8~opHz%4yfA2(NZD=}VjGjiUxRT9#0^3AmPfizp! z7*pStC_0BnaTB+S&}F13M00Nw;`SE$)0BVzMpc51y&LuK_uL|blVbeLP_VTUZuuzg z|3-l1B8(T!2MYr&O<81a7-Mlyd4e-qr>4OB1qB{a_%!2_CyBd~6cHtT!zowNL{aeD zRxQt92o-l&5kCRe#MxOpMf9SqGCZ%gLa|2(siBET3?&zd@v6wOAESy3`pe|VNS{l- zDkO7X6C(JPrbLiDu76S`SP64cB|I#ZkOF)mBqI3>$Fkm-avJk~5b|eeq)v%fN7jNEb!-7Yv^Ius3b|az1w7-mnEo`?Betm$ ztc-qC8E=W)ikn7!1z~coO}lyDLv#h&_A@vru)dZ$K8m<7O2J(kgmMI2RdIH0q2bqvp-cLU~~vLyU&v^Tp%T8euF*GoScu zR4(38$)2Xb*QzBq*qObW+>clxeUyS6F`I8Z9cB|D{;n(@z0%fnp3yKW3&ZAfumSVz ze44Q+yEKo37N`J>oSsKg3Gv30tyYZjT(Rr8m#lC|Dzs3>?!|0U#c8emQ6Zi?0i+>c zchaAxOzUw~f=%mPQPaA9cOjXtq_BIv25fTDTFl2_x?~gvRSznrR90j3`vRl;6@1P3 zC@&}ONz@|B_SRFbY>KV@;Hqz{aA!Q6ic_p~uLGOnx+OcMI~ir0p>!*h0QMNlp>*KA=jl;@ulnyq^9{am)`V zWYv<}kVhkWtX5)VK{KVEm~>O)_$EtfEIuu;_)7&-Gs^Y~;+jM!qHKS1%9U;MzR8e< zwtDwW0$K5oRq%^o-t<-Q{wOmI6x`uMzK^8asA_2%BHiQm$kkJ$Gv!ZM zYc)PqRefTq?BiH*Rw4MDQFROVMn;7yAzDplp6DmJjw>Q{RC{s30>4-(B{9oz6?xZZ z1s%yssf4}J17UgsQKZ6@JQfKi5Q@2Leb!`adhA~)}KcvkkUc%qOuD_iaanhKnuqM9OcsU zsjaX;o>pWiVKG*nH#ic+`M{i36|r&5KsvQx#G)AEkR4l8>$SWc*mH_ zbCk$|6}l0mw3SP4(j#;x?h87yh0#iRz$+w+bi`pIXseXdJzIMGEPh`Y{W##2O2yIu z7IbhcQwbC%P?Kc@;3`(i(OO!#mWkk^sxMVldI&6IIv zli!>5%4u#UQy$5qi8f5rK?V3O^VZ-Z2-L`c(k%u4fImv?y+3#kLxVHI9>NI~3y@o) zQ3`^*sN{~RS18^xe;lWYj}Op(l05!FOy}o|B;kvFEFqW0ims26=kPl(@IrxTJBOg) zMOeCorhvaft-vv|JOi`V7|jq?pVW(qOgJ|Fg*=_?4k(zGWWv zmZzYS<7g}6d1chrnamg6qXTr&L4LqZrQqw60k|)i=M|1kU3!qQ~kbcs!RL zeI0o8(&NwQ^<(t-FM9ld9;@lYbLnw4L9vA%nY1xdX(r< zq{olZW9NQIkN=>@ztQ6bhyj?pmL8ANs#~|XO!L@V9$9+4 zlOAuQ$2aNmHF_+^WMZy^9yimYpB}HL$Ak3v2YP&g9t)`PdGx5zqePEK=! z*O8d9gpt=IBsVqA~m+jR=LpGk^14{;FJ+eduMfB z;g>l|EK@~XC7 zEngi!snX{alIaf1UEz_A@ZX4yMUAO1v zol=|0bLWmWon^DtvgeL2?04EFYyPS^_`N%~$kebunJBm8^}Edym-uX5iLTRbmQ0XT za_UR=a>pAJ_4B{?@5hXwLPO3;v)Q!Ep#MzA>vPRkn^(|0-7@R0?bO}Q@s2lGHR@2Y zWfST?&}cdpvjjK|1@(cyOHN~@X)jxlzU8tfUG}6)a)&t}xdQ?au*zt+EC&#qP_hQV z3Z|{&o!9XOnr78BT(e{C@y1(btx+{vrdw+pEOUGs_nAL zv_U3Tf4s4>%&9E8t(7VRVc2Tbs>PON)&T8E1i9F3m4hUn@3xGVT?z~zfS^nYoO)Dj&;RxC~h1)pB0<}v37mQVNiuN zTidKFtXPqLV>kaWjEUDw| z6sXSyl`F7}S@$ILk8!TEg^hIu;P-_gnrLm!+?ve4jSkJ z{*`+?>(o%J-2{3EuCbSAc~W1?ScEEjgEz8Io-|x?%4T7)>Xc5v?+@8-%dRi8oVM40 z(x|op3UEKxR)A?E_^Qs4`#RQ6fZkw#Y`1oJo0y3_dAGF(lOH4g@cLR#*;s+z#M8YY z{&)y+{Jb+S z0T*(ng9@OP;vbK*o`9kzM7K5TP;;m&c#w8$sc?D01-FGo#zm2a(R9H(001cCm#mAi zz-ZZAGTPNvvFWf*iHX~da=EzFu5%9nt-A>>*fL!J@Re9#k`<^qS61pPLYG|iEL&JS+5Ra~kXpj)6h z-T=^y<_frmnqhR>LlxfIiI&jf?L^d%5mFpE{1e?Z?jOGqhRsP3VvCSFvn1VB9!(K03;gO2x2kRt#x8ql#ZMYxNhN48&6ev| zWVj72xCovW!V6!T3$V5BXhTyAz?=@H6%F2kJKn}S=D|I3L}$YJ!clU^;0^iRj`!OQ z6$3owAdfFt&jIi5Z3KW}@B>fY>X>bmH^#kRFalZIkP4pa56B0eJIF(&^Sn(gow*oK zIBq`rSzoli$kNbz^AR!RmwBFb4Ga{#&SXU8)7|*b7u#R$#)&c9Tq$ByfD-Y4?{4(oZ=G5lk}x)J}Fv!2BN@US+}Jvcvh6n#hh{l*FOgR6UfUi-tTcRbLMN=??b-*GH($GrzFJ^qe zPl*hs%Fo=2nLJ)+=|RlCX|@Gk2_>MZ%oJ$mb&UO3=n^uB^(z0jf*CX@EL3EmINs8w zzYxX-tpkk3K}uvG !Z|MV!b#vOSMjOV=Aa3d7af`4Xqf;1bA!L9U0OC02+_~*Y z9}Y@v%<(5I8)kFj#{xVa?#lQfS`o|)1rA&`sztDh;2@gJS?=N9T!7Bvx-$9*FiUcR zRb@i}8+U!2cXOs#Ov*!2_6xJ_z*x?wKh~{SBh<=AMF^DGJge!CZd~kBimcy5qG&ZR z#<#2rxFp`Qy<4qTtKmLlZmv|WSKQfB)oGU@wrHBOfZv<}1?Q^vqRS@M>{oM_%|3nh z>2rK8*qW`l&jEg5B);-S^OnNC!wZGOhYuC6z47oNrwM-vMEM}kG{ylN_e~LgkByKU zZrcle;2uc))YFg^aex{ zA3-Pmd=_Ezx!Ef#O<0p)Bk8E0*JfkV*&uz|Plxf-De}SH9~^cDS<*YSj3%VA!5@A8 zHopvaJK&P)E?~)~<2$ao>CmCvk$s1+&OPhu!~3o~^xS>(^T)1USa^0PP`*X}8dm~f z5^mHw-prwWM-JSy?*RPt(4ps6?OCU}9QxU)n8enX+34a8HW`g`YP(h!QKFb7vm!8SE&IXa4lLht8ddY8 zSuKj`8k>8d&KWEa_n_QDAu}{$Zm2sLeQw5|@hld>Lf{CaF#DDD6zi$j2eC-Vb^Cz< z&mIw$VN~)Ao+hNm<0+mu87l9OD?CFi8Nf(b0+QLtA<9FChnS~yA{IE0Gf#jSEGF~g z=^Zk;Y2E>I&sNbg4d~y2#Hnxz81rGIIe0$T70PMZHJIu{z#GpvP%;p0QnO5gF2cZ^Mf&=oq}%Zdt4eZ3~=L4aO^9`+?^+Kfwc7R@Qo!btV7J7+d;~ zY~u7{CrhjuCtz^F2|Sw!!(UF*Z$q11Xf9O~$1#6=u3QKmm%9vWpLG=%KMhTsFPNwe zc+$@bE$r~$Z1pp`Ho#yBMjGu6`g2vJd5bTg4huDA%do4kaMTu^g8jbb*Q;c)xWXIw zr7H_}KJMb%g@YL5Me61$z!M1dHnr<8Q$**nndh+pA{fAeSqsz4MT^N)WMJd-mf_Q| zSOzoCRx6k#O_Yjuxd>})JYWQMzMGn6>t!&Ubjuqrv6&i7zd=^<0HaQWxq(x>Kv#QaSXQD%lPniT$@X%w>NqDLTt5rrE;#YcGJ`Y5 zmU#WV9WKHwY#Gq&GwTIdgA0mnm&Jq>fA;5{f2k}sE{kCR90&;M zIk5=f!|DoKARZ3F^MaHzDWyPJKHKjmr)k#MDoiwgoBS=VYWNQ0Y#?HXEK;-UFiJIR z#j06f2KOd$3Bl&VfB+7u>~^fL20}tM;u2Umb3$sswM%b2sAuk4;7rzamn_PHDaJT7 zdp13Vo*>N$;U5&kRhHvY)>bKt*BwGgjH4#z+HP}h(XP)~cDrR)Q^9Zi z4Ed{^R0NR^TcRvN2ZyzAm~yln2d0Y>?MY}>(PeCCqp;w`6ZvxFW!96iNAT#Dm+cb2 z%S`6X{n%K9z7u!AFc@AchvfvE4u}lCjK>%0#4kog1|L45z1LyBbkdKq!+G(*u-#tt z#xRuQ%f`@44xSI4nTMJpg`v?jAXfJJA&`I#9tirjdgEfJCDFH} z0n{6W0UB2x?}xB+$e*~fX}E|YA<=+EVu;Ei(chZbRECn^wM#W{2%y#5#0PEg)4bR) zo7&kf?xGCv06_e@)r4j60k%j8^I%W{Yf)@v<2CI?Yd5Sa`}-HOIPgFu-Z{9z+b-%8 zBwDZq1na0R2FSK}rp-1sz_mc0zoi!Z5O&NCZuDkiKjCedmERG|s2C>=+(TeyY>wr! zxSgeMiKRDIU~38VZ&38J-JUMVZmZ0+_oJN7!OPp;jPQDFr2>e+d3NWlHyufbcpjD> z&q6DA*or5MiM&C;g)MNfFMy{Bi;6H(vdI#xTLENey)7`kF-{as_(`=0<0xCM1$tiT zjW%FKmod#y$SRZH;@k;%Tg|e^B&SNZZ~Z zjQwl}ii2FacEfq+9oY9b7eD&;FCV+FaxnPz)nc=9Ao%vR-?l6JgKv+%=Z%&5;M+IM zU$0yfeEa@y_EoM5zWwCx_g1bBzWw_Xe_A;deEaFXuT-uNzWv8bwpES<-~P)wQ#l-b z`|m5iRJktr_CJrkqV2(+1)I{q@&OB)t-LoPb_ZaV!*(cf)fUqO-LrGt4cVn``&qAXy+OOqH!#bc%1KaNS%H6;1aAzc=Mcq1h;+(WaXa^esv1Oz z%+ZLVr=X~}Nf^R@vzMa`?Rx;$9eD)fy}*VwJ_oj|*xWnha)!~V3^SKB95^qwPmUXg z!_0XN3)eL)yc1g%cZYq)3*PaA6`>!*#i!u8X}TKW2EW4&now6R{ge%e^SUq5Zk zudJUo=C{^Q8}p0nr;YjDb<+mB^n6&9LlYlBSv2m>)>-5aVH_{P4x!*tqM@d7N-Um3 zC^=ZN;4l!(dtoA6c@Nm`ZMqTSOg18n?*pI8<_uz`@Z}vYpz;A$DxT@}RcP<6-=GgnzUvpN3E04(7;Lv18N&#PEAuprhDA|M5+XvfXxXa^g(SFvO0 zm}yjVeAy#nNhlp{G0)AGwl`dLVCj$@HjqO*A6aqmVr) zpJ7&*pW?I23iA?tGFM?ejn678tcCL#WrejaKAWsCHu+4l!tms?$O^9w9N`I1fiYGX zS!~0hSKM$8B8=F0%!7&{wk2JJP1#yPF>gXFtiT$D2wbN8?QDoFjOC`$uo8ZYwhRR$ zZBj8F8N>sZFp-syFywe_a29G$8;jWt7*{J{)uA7ZX*cZ-pU6Te#P^qY5M%8TLBxFw zU#{z3vMwRwmje-Z>WX-2AYw&V#3}wmY?!Cv@2*kVnS_kJm3tC$Dz8k+NRIF-UkV8P zApCkQ2xKcfs}cAeVPk^t1jZ|8nkm1&tdqb`T^oU_PJ*oXUs*Q+45 z-@hPNzk6R%p!Rm%sl#$!59l4`5}&c(>c8obwQzY#QwA7Dx}4J z7_sLzDBypJtX2X4VOM}hsjWTgu1|Dr1* zbJ#~2>_!eFk0|!hEF@s2FRQq7j1yoKge3|KQ)JBw3*)*XGG}3GU%8xPXA9VqLtPd{ zyW}Gumy@fMwnI$kVTr5|wMil6sbuvEDVOPr$ea}3{{6EaUAjh)g;d-|u1H!cuxkYB z6c%1U)~vAbd|eUi#DdtQ>c)bfg)H1ft_YC@U!B6j8M0=Dg%|6J$ee|7?x0#Nqhzt` z8lpVJGm(i0$dyUU#00t~X^q0gTgkc=F5avwB6BXrc$f;C6);r7IoHT6A(n?sJVLHY zS|-LZTn%hdh=T@jfR!KY-*Ek`+!$q4^<$Q4KnKhD&+1q$-tB5PHU|AwxJ z%#j~B08#5ru<;dX{6Q+>KG~mDtU8#7#{~;)<4u8mjI30FeOOmS=CDsQ*u|J3v^a@Ny|xzrxF`u87QenP9xI%a_`2j-M}&bPFXH8M%dA zowSThaz@ae0=Gw@<0i6lg^pvoA~L6AB-Bl!{UeftG`y5tjkGk3hC7DpsaD8}6$(!3 zipZRT9U%&Gc0I>VdM-B|c!n@aNRM(z&s)eR)~1Au87n`XdiN#z8UW5$eprV7VLDh>r~;Mm`Fe9RscCUPOep2 zPB!P+%^?M573_Qqs}y2hNY<|qb2AsQj!u4*tsVwdiU1wWLWu7qS1~QbV|?W>utWj( zC1lMCxTkeR$X4G*e%9LKPaK0gCr+9PL@2q)#oNf$Nz27#p51|Q((KXJf19jaq2sr7 zMPyFL{ukv}DCR~Y$(u824z8j}b)4?!QOAwpV_ zQD8QHh+Xgm2d2xpg%froIxfXCu}%Dh3~AanF_GujO~JwFa=~TRC@%AdWZg=O_<^p7 z%(>XKz^)XD3|N?ixbK9!V>3DY@Ac(frddII8(E`*_KdEG%+c<@#x|?*59l4 z|G}%^MmxBq{6rLenT*)Ki(G-U*bn6weG3%i-$B-@Apd}_h|H1SeiOeG`jXrNe^Ug8 zI&fRI8D%257&7zcZ`s_R;>{69bFNriO^rLS`Z6Dxf}Rn^XwMc zNLV`Er2ulWbttPKbu*m)!DXrfKFrUoQhLZ{vVMh_NiJd?7p!(%SZ!Sb|C^UwXx?$j zg?0E`W?z;6eyp;STysE^MtdfF8RJT(N&#`^E4TUdIsaBq_=xZMTxEoR+rT;K!KB1!ghZ z^#yz3r9dw>3(Q)j^V~u-^rzM?B44!Oqqlw9IMuc;wITCvI!m-cWrb;wzU`@X8;5*TGP>ynS{;k{&J)3%4{ zJlxOEZ0a?Z{T^Ap(l&mVi&)38Z2Cf2yu0K=rwP8%fl;ll>~(c1fM|b#T-~&2!x3&+ zQFNLGFbV!|s@?E&WZeqXpVk#2JHVeITWdXV?YIywdxh8nUVeDkXqBu>*mwR{)EV|D zhYbCQT*b5uZOem61!f`KNnElD@QweWGWD-y8x*F#rz;}Pl!mvH4imekh6riJDh^Zk zu*R+<@K6|R-SN%(9KMw?xA!nyS?ydDZ81GdVw<^eII9W4&OF@s4|W#tm=fAqs4+9u zW^)1A45isTMps0fFb&RSv%xb{8X}|>SsiJUuS)f=`RjJ7EwL1~mmA3_r}Z)0<-s=p zCgr5FZOR)k}*pJ81P}wf8m23KcvZT@kX~SCNvn z9$te}Y!TFhRD}EuWb-MIKShQ7*T@PL$X}-`A~odNAw9lT93Cb2dvbJKQnQhTkCJPY zmW8R{h+ANhz*C-b`!HF%Ldl1?h;{TT+t^_$7MH&TD{|9o#)55-; zAF&el6MzRXncI9E! z39RICKD4LaeEmONu;m4k|D`J;d%nc!xK(@B&K?DkuP0>4mpC(*s(x#&nh$;4{RmFAc31oE1M?&i4 zDy1c4nm<~_Z0bSE39@>H6iZh`=A=xsAi=4_y{qz;gh+hQtpL*UT5_e*(z2O{24Gbo zWR(C_#$@-C^((x1x*{^?WvhSaw-+}_g^-^=B3CXgKih%>z^ife0kRDWM}MFzB6E(m zhylJAMG0k)p}!+nEiFS^fgyfoel>#rnrwnX(3f>ZWKIzD5B?wnEJ=s_TkJqYQX!=1 zf5??fOA+ftoFcY-F8y4WgAqR?+n{jtQ(X~pjx<&;;MKrC8Z$lNMv2PBuenxliFD)^XV+yyhB- zgu)q!@~!0RrF9N$G4`qI%HS57o8{}@uT)(auQvTFqOAQd5h8QFXamRg1%ir(05h4dSYJO8`>@G>sb=p&91Sm0>9ld@PoH(o$z;Sl0v`jWJ8pe zvxSTJ#SHzPMXp}j{>ehWr>leA6=a19o=?*iA^X6Sk&>TF=yyBWdeT&VzevNfMF+Dp@Qc&T@kX~&u|expO@b4 zBb%SLS@!|tmp)0w{MlrU3g*w$6_GjS+eMJ(cjSaXEx8yv8t0Cg-lT*56;SlCL|tgx_IS48G4j0vc*4Mu5*he|$yldtB)jCs7Q5G0 zSedkD@@ldjO0#(t7x9a^X7YY=_0q!3C-7Zfp736>Mg`E{(-k3m!0#d_KbMWIzapDY z!o17d6aIp%QNjERx*{^ie3w`>33cX#b(5YY(e3;vxteLY+3hc#gzW6Gdh+jNLlnw> zq$?tG%J>^}o90Q|h4CR8EJU-Al*deF7dN}`!oI)~0ij$&*+tf@u&`ZMMCL5O)qt>u z1uvI|BWGe1jB?Sf05WnFxl(Dn3A;P6#a}NSvP$9QIb{6`FVE5ykvT8HyX_;B`XCh< zSR$LBmH|F+cexp&MAoQae!H%S%rPHkeZe)GC*v>94QC+oze27A3HdG;MBGQ#s33o@ zu87Q$pJB+CjC#rRZ+%n7gziOWau5 zd48;Zsa-FzEvi`iX9p{SEM(wkXi2XQ?h1-g&*sR$eacLOnp%O$dZ?m zi(EW*I;$W!IB_4?qtLONtX!dEhpvds>6q~cg__ZjJs`qK_aaElesaaqc9Jc@AOV&Y zlG%AK*#d=~D|JQ0+0mF*$e9U7zZxQ>6+?>j+ZKOvF>EX@8RxW( zWrv)jl(~iQ{7lmJeuHd<(qL*_#4qMVr9-Y>T9ElfrOR`xze?7q0QzcO5wh*S3OV_? zOjQ1uY(5F|E)TB$Az7n>`TKQ6WRCeZe@w!@oUm|~SPGrZSIN~&%gOd&WJ3FTESvo; z*$9QEztR-ldF~1FU@dX(5@Z<^HpR66l$KMDLu2wG=P&3OHAF}&GK%45LgSQCwafgB za&!Txdl76NZy>{)ws~yHhej-EnbJmnjckF^MqZ~YB6D`OiWge-4EB-=AwwS}S1v6> z+x*v9ts3fmm~4Z>(T8+JWY3W}aNC=sghI&CKa(q$o}&`K=%%nLNB=;!LE-2tx+3Bn zX*f#hYjFWWLxi*f*NQYmNGsm6k%jUaBBT}X<|2&B$2OdI-kHwc$|vCSc&G9petZ%? z9>$MH_=jMGSZXXqUpx)no${ZmvRLPeWV3= z*QC`hZO8`%B6b|uFg%@n$<=WN=!l=e}!D7 zv^e(VEv8v%llPG|Dj?pgD?<8a#;c3=*nX$JWG}ayUE=##9^(HVa#hmeKc0u% zaznN#M7*1s9dotgeX6 z@$X;g@>GMLh`9fRY2%>sGk9TvtTq zTnx<{En`s)*hA^az#_Q{X&D&K!$P01K>@!=R;z%2o34m;0AJiN9-X6lLvU`R&E6I3 zb`bnmkgGrdKhULse-Bx$0{&gPA~FYma-JVR2{x@`9H`ky#kdk;e@6x}Z7UeeCoWX{ zHCd@b{+D${#9`N9PLhwyB^n~66}Xh8AwsN2?q@52>$qOi2M=quqe~2x?=c(rQsm~X zYZGU(TCKJeIZ4)~w4yOCLIXbCJ~^^r*O%cXE=QcQ84KFOISA%u(mV3CWwb7aK|vX|(JkUirfBxkJ`Z3gyN+iolV2!4=?&_ADSep={Z!BOZ}U|%3B zRbW4=Du?mr@D_rn>l-}I&P_{6kgkY05gOh}#(mh`G(<=%vT|^- zeTPWjjOAf__!$||^zC7lJ&B)^RV(e`$6UlZMsQQ&9g3m7mI%gO@)76V+cFA`y=nh# zi6NT=P%@_5K~}F|y;WC)Z1tPDh{UO`_OL#4*eTmf@Y0mXCRl`+?nRKB=aOrdwhwH{ z*SKYcsAUR0SCTDI=y?WWn-l{ig033^ObN{4Euv=CWUGA98BLdbMB5KBpKD^TC6D?;{!TXaRpQ3we?r%?#|qlO4+1$tl&5fTd=3pGTDHIVsUYaog3 zUfbD(wiLo1rt)9GGRXfTliR(8vx=>@4Dvf%vSGMUsKb@~@9qgjq^v-*i>{nN-8rtOk&9vrm` z-sHgZWU@|$`X_M_>p1Z6cfE=VMaG?Q210r>xq4|K#h1V)!FnTEuLA4ybVbOvd<2rrQ9VWnQmbt52>gABZcT#d90z=<8OqmV?wX|iI4g0`-RI0YIWNv27xn?6-{ia{TN_kcti9-DD8cHUKy`B=jq8?VV($3i)r>6|oMmJGF)pzgJ~ozeq*c zKTkHF0K3qn!2VgXQU&%;>59l4_VJsWcFTl`e95WR?AXp;JQGRyA-OVXNtno=V%ESk zURa}W@dL7Mg^Ta%ipZRc;r&(9X!1*jq7(UW26C`%XI6pr2%K94D-tfyo+0a1@SoBZ zkvaZb*pZJ$ySZ$ZVcNOmHL(%OF8Ta@Eok~aM6F0xt${WDy|I?fEa%i&MG*O%dPK)-I0Nn%17#QFhprPE@K zZb{e{y!x^W?r$ZVpy2*yT@kX?|0Ytm)>FrA_&z2iCI{!!#6>>QK|HY(lJp3sNUB zhOUV0d0`{A@7KD;T>RCsu>#1;eAABI3MgP%B#p9+=h;A+30m z?%7jj1>8e=&HA2sS8ovs&oe8-U=+5o?~w`W-o{w{Ry+FsZL%(E=+bJ1k%(C`3Mreq_gFsri_uUBSu5a_GxUqewkVA3)fFL~+T(RaNY{$( z;+$OTCT>My3)1enJMaJ++zuRXNYUQgqZ~Gz7m;B~+i-S@<7h5B^150tzLji-(q?W! zsFR*KOujEzw;T68Uw!Y7NJDI2My^y^Z2R;0&LO4my_Bp{!Er@bgzS4Kk&3mRXbe9e zu5p5iwekkja0WvEJLF2Fg?=P|Qd*(l{}!@d1^+kcipU)Q$^CF!jZ+I=`x9H+P_vPX zKOvlP8&?5D36?dn_T6zoITDzr5qa* zdWIC=B%7m<_;pgAEdi9K0G=a2IrZl{nqN;XF!aY$E0oJ5VFPR4~8 zX=sR$R;&^i>V_oS*;%xv>AJn6!sKGuaGpbkIc@LX0S`f;g{#Me&mvo)w3jP%MWkj* zJA&UT9#x3-`e^u`R0wG*k!zQhrfvSC3$gyKuA|*fwm~83I2W;g)9(wqBcC_}Pf;HE zxR;DYT0S0^z(>zP^KP;^3N?4?ije*1CAuP{zr_Z!2L4t! zh1RQjEwm<2aJ79@=+5lO66^M0iS<)tcDpxuR&#iijdvpACaZCUOw2t zxCr)!-~g?ULu?+~qZ~3c`k1wetCdFY?c@xFYz(;SGP4~bo1u`^uPY*RvO?Eb_^mbU zg1j#INY0bURZ81^!q;5*HYq)*Kvu7i@=LlRvM0sAW-aJCQHK^>vnKPAlpD!aN>54+ zFSYCC)}BXJuaI&?S48%t%)|9^{P`H)pT$T~^O2O(B-6MYWBhE|7MM8dyT%ELp$h${;dlbj@2C{O6j$hLikvSdXhn$j8m0l^rMm!VA z_yoB!X~~$#SD7_Ey2eMzx)m-ytScgOE@m(!UTjxS1cbyQuC#&+A}dxncmfx( zjo~EGrgm{ax}A<-_F4rbQVq)`q);LpCYx{d%%`1?vO4B4m4?N4nN}`aUB( zQx9Ic7eQ+7AXh9cHCud-v?{Qjsl_6K#8Qa&H^>!Fi#I;mX~5HIaEG$9)awDLa!6N1oDq#UL53PQ*lCE6R;&_gXz#loWq0HR>r2sI zJ08o#Hu1}3NYl27i9Ek_C0J8ZTg1!Ax|J63Qe6>oE;Q(rEdn>#HAF}&KGA#kS3CIZ zdtTdYu0&gcNW%v3elmh-8$f^l4z62}CimOlOIE4y{(D?RV!*lfkDg3i1Gm{Go@r2W z5!=5YS2QiQlldjEr{_-77s$#Llt0%S<+VRJGPM9VoRzFZoV(;B(mx_sHZ9WAd6(PN z6YGB^t5>l8o~{V#L%xl4t#uGTxB%OlB?#c7UPLA%1=}ykDnK6s3WNoUFWExYsvtkD zD${aLc%Y2k+E&D1E(`%`3%3fd3ripU)8p_^Q@+iOfh>4^Ie$W=&-`*6PPnn^D$ z`7T+l0{*|~ipU)N5&jCjJK9dOU5mE(NDdM(^SG>H%Taj71YWEs>`>bO6j`xC!MLu7 z%qbYW%5hHAjArbVi%drFFDF+ZZR;P(FZvcJ$Ul{=RYCqTT@jfhKXk;&-PC}G`psz5 z52Yjaw~?!m7W?6R-6^!u1_k^Vkku;SKVMfw=HT})w2Z}S40%5hVZV!Pd|KGy-8iUS z!Tbzar-J#5bwy;3c^_aNhg_r~;t!BbPm6dzLmYG~fWMWjQUUzUx*{?MeCF!YW~t3D zse|gbU<1}J#a0oz7eP86Ay+Id9b4eKNMTtaWSPRwLu3mSb{^CfkvTg9aA9ZFuKh)Z9lsxffvkJEzn7NjdJG!vnX_u_|tG;&E8{l#Vadeqq zWpqKL=~tcrwqmQlG`}{XKCAX>&(_Y8bt#SgVlE;X-@Bn=-ayMKwVI~cd0pqCyE|t( zdn+FR>#RMM55mXsPUU0p!BRhgUmwJePvXbJ`0)t;@cQ8~NwePSa9X_q__JxlE3uAu z_8#&2Z20DMUeP(?^_QIblD*9T9)<;6zCG{MG0!!dC(S1Rdy~;_S^Tddd3Q4tFyyo4 zV!1MW=YI{9YGrux3X=y)Rl{{bKl{lhn97P|x7}d(K|`|XjoS56wOuxs>?#^sxdkw* zypa8K8~f))?4R4&Ka1?2GW%zV{bR9zD(s&s`=<{7nBHK`I9)ayVD-Tb-ayG{@Qbm$ zq5V$11!%a>=y;o!tIlHQtk-YZ<+53azs7_OLBe3YU0XDpX1Q|^S_$0d3br}*>I#${ zZW^Z~to*C5rP2ZuL=(6k{`C4?r`;@>9q-yX3)=i#4bCZ>&g^pAC^zl8JvZ;4)}K4t zbe7Fl%bpAR#2g^%&Y^%g{;JH`rrQGRt9IS&9NdoG;Q-UPXb_r+uuu9RY@!+tM0&!# z=VAr;phM7jllw^0hL!fF_vm%3Bb3`E<@ChgVj&)f~-lkaa1J z=Ji}eB8bU*vFCy!i=3-nuAT#cLs^LDhskwJiKjOP@39W46VS->1Ro-6R?z)mZ*&uf zN!^n=lLElpDZ6FmmhIS{hMJ8Se}!Drv=~qM7#EmD1!j?g^WTuQD>(n9t_bOizN9Nc zdPHRVoIK+DxD{*OE(R9tJ=3Sv*A%BppR3X1lSA--# zBiPweM0{USq#@*UWYg0^&X*^;?JQnGR;d7fk*;_BI^3G(<=%UVAQm9^#Md z*EjwcJ}M*b@R@trmTlWL-*2TI3=$q7U5xa%5k*2G8Igg>D%; zy%@>C-gzInf+@lD;4x2TM}b{Vv!afO_mUMW$lk3hLiUb3k({J3T9*R3BD}N@?kkm(g%mxJ?3484kXatX?7I?Ybf|CuRJw$tJFF1$wCjH(o{=iDx1m zpC?x)Egcj28d_5j)+k(jmaJRh;#0aJGUsBFZ(*}#gRX3-*~rHa$rVb=#}sa6Gm8=# z`2ktG!pL`ZMP$y%G(WJE<1ef3%1O5Z$jY|IuT4;`49MPQJjzrMuh7PRtMrr^vVMh^ zDP0kn^RnxhdD1xnPo@~K`DwtZ8@VJIb74J8B2&*KS2Jz@*$w@N*%`b+sSvhPq3m+9 zAqr(r)fJIBWfS7QSa$IM8*HN^jgpJh6v@>|OU)!uQ*%zjE9l{Yc5aVC$8BWg3LP)d z6_Gg|V?G@@H4uyCAr<$KtCE(A@qmg#_W5hUj` z^!6^BF>J+dW~H2!Q}!C5z>mHZji~WfF++Jy_S43*e#h{ z;Jd2gX_5HLdMZbQm7h&dSernTRdBVHpYzGOlm_)byg_NK{OIpH@o81dGIQ{>OVqWF zMzXNm=E-&J-fa~;Vc&_L4F*dJ%o4?!=E#~AboX!(iRiBR{zBg&^Q2jgf-2Gw&3SU2 z(xM4Zba34YjQhwc6&RnbD?<94XX=WOUJuDUC$G1YTe0S}kL|C*L#(;3eJYlR&7eg_ zBW*Jn&zG1jg~VQU2U)e!9O}9vWOG0wG`N(_0X?UN2x-O7(D^2<>}tDMc*LSng@+rJ z^ATPo2iw8}WHi&Z1@`cTv_o+WZzU^MTEd&Th(!OI90%wwnvbv>k3_AaZZ?vG$Ua1_ zV0vWXv=Lm7!_ieot_R7A6=XlID?+yJk03coty`CZ@%=Dt!`0w^?ZZ28UOW?t_!hY` zX^EKduSxW+QCj&o$hs9S9@Q0*Js0Bce82WlE@GL;#n=-wijUzfS5ko?+5xrk*V7nhPNlfGYw^*rAig^O9TZiS1Bbwy;(1*{PT10OglxF`pX zentrCS^`d)HL|R)#Srg0x$0^0-T~+HnS}*m zVL@7`5O9KQg+hR(D?+*?6FFS#Fkl2OXUnlm#f{}yFc8T>K3+?%Mp`~b*@bNI7(3db zP;ft4u|k2TDT6~;e;K#`x=)^&Ol``gffYr*5$Q81NU1olyKJ<|dUFYV*@^tdS$8cqyee9`R!#+m&E5Z*xo<9>0KVVPf9_-@}{Tv+O2SMNmY(e7S zrV5K;4)(Xbai-8UOZXhP3lHUE5qfIS+2Kgedc7rcf)BQL+*7Rh5z&C5LY_`Lkao}-uF*aP+Q8+)=|eq)c= z%Wv#id-;t$bT7ZLr|*MrZEuV{V-MEzdkx&q{T*-0f22N=I$U;YaM1}n_{%EjonPV~ zBTdI?72TEEqEqcujzVp{{ssIN+>yYZ(mvviy7nSG5x=}|5l(-?Ed&1dtIVo%3cmN* z@Q8m4{un8na2o+!m&?xH9PtL=@%p+^gP&Ah2BshJCT#bZ87_0y8!AGaS1rSZ3UGmf zH&!(2PJO>jX)k&M&SC}bK4!dIyAPh%_J&H9QD0_9?RY%~#MdByuw=9AcEALvE&B=l zLZt9UHs*f=+Lu^L+uK-bG+61%voC_D!xo^{mFK`;Q5-7!A?ZkEp8e|$@jBnoyrBUV z9dDTs62gWTJS%0?Tu2%9Q}#8N;d|v8{?h~eUyeoPTKM~Hl$R9 zNOW7gCwn6exbeZ^w^Ohx__gY<8jEI?SJWF^HsM*{vU$2wc@@aD_IP7%1127)XZfpA z;aZ8Q;*CwC?&2f(aD~L_6}UoVZ^eVs-bAr#ym+P95(U`hB9#|{+1>z%g=?d$9k1^? zF1^*cyHj}${D$XOewF?8TKMNaxSwP3z7AZe0WXv0CBf>ILhubPD0wv$+Z+3>H+q;e zlS`KV#*p-Wyg$8Dc?%>ai5w9ZzaM4sd^daF8j=_>vhoft*4un^rDZwwT*S8fpnDCo zUM*4QPz$_Y(W(3f{JQc6E&{$W6NR1djY$^bU(vzF(DwT68rbM|yb-|_T(SjFPhJDp zn=pTKQ{BE}-Y&K9u9wOgU?gyx-gLt)u^Vy9i|j<1GwYsYSG2gSz#oCK*MP$*SMj2h z%KIR}8=H4d)vJzCX5w9x=}kLLd)clV)grg0*lya;!n`5Y?Tf`Dn?z#J~MsJ^z6*^&@;0S z5EZyA9Bl<;FxMONG%*oHc?1-VH{N)Yo5TbJ0r3%Y%{$&i6AVO+#`{%$)m_tF-E;aY zP9Nd-Mk zS(V}&IxgMQKI7*0P3^7j3Zq_c?{f!>cA@E*X3=um?&aG{cGcWoHJVM+-Zs}VijGyY zw(qhFEhewAeZOPRna!rPegE`MyHzOdx@oH6ASzX4cJFa$FYi_|E9Lv(=eMY-azwM)2uZtyVhtQYP4QL^6bH34fiKmfGdsufN6`M7zk zP-zuSrVR?Q`J?sYbDYY2qj|i-Ko~4FtCf7SWL5#~aRfQiTvUfyULO{?G=-UmNt z7r^QXR$ekI_52Jpv}Q0d!#o&{)ZEuGj0YJ90%7>H7xMo%j?k7xbEQ^OppygkIk^{efyX_<9MxOcDV^k zpkNq$5qCxTmIM75CG^*yykAf7>*n=o^VwVcgW1MEgYsgRoFlt`kf_~*AH`#G5Z}9Hgc2``#3w$AmZ>qCgct!37+yQTl z@j<%0Y=B$r=fMOUCg9556@Vtpbl|p|ZL@{)M!2iAR#GPODX5TAb-_PTsW$sFL zo%s`2cxgV>m7XX)!LFgJ=F?w?6Xs>5%VAdFm4>)zG3SG?;up~huL00qOqiB<3A$p? zTCo}>(}CHi^STT#O6&3Z7#9zbORZ_mTJQt6uT?u-vyXZLQGcU=mVXC-)z5#`vWo4} zcMunBUxCFzZS+#2$#YQ4^ezeO9MhjDL^tB{>NXn}V#eYHrK?N(xyI5Jr8jmG(6kGp zN3OujXePT1k(U@%h!R|b`M3@pLiiqRGK}9mj5#)Ki|bR|h^is3=Z{)N*5#L>0yLew zEf`yDO0sHft`6YdYM6Npf$l({#<|Rn>6`(^iNX?yD8Vbtw3-mmc_kD4H%A?d&0fsM z!X!5c5ubGfRED4f0m;E!&YjN~pH{IKiQtYGl&&i67VZga@CdC6A{Q6U-woKC_!;j34yrsxUtXbR%W24Eg%Way>* z7gHYKM@0cswbW~a$6I;5=uZ*nJLiCYZ&OUIHkiNHmbbe3TDutPNAXz z#qpjl{e>{r?;T()&PbvFd1l?2c}ovqY@6L`)>|+^`awz$4^o8n7>dHg3h@C<_z<)) z=gw_M`fvtf6O6YyS-veJek{P_v8@aif(^mKjwpf4Mzsi59vpR+p%{#w|DQJ{2LGM-D5lOFM$=GtC_|y6r-Lg!lSXdZ~5D|LT`Wj8Eq4(@PAyi z8nBW)&L_y_Z+{!BbjYjZ3qoteaCgVpx*fU&i=G(C?K|8)af#23<6b!nl=%|tj&coB z3p}Fn%35r;nfI?xde>oQwDWx0_T2skzetYzrs2Rh+a=I%m7PaCm-4MO}^6+&w8d6ibRCgLu!?qpS99a!|j zvGrKLY1b>}5wnsP3m_KFqs}R;5O!1CLLswbT3TMSF`iq6KjTF#CWKH7raJbk(z&JA zU`NL)9sbdqeR;81JHsqd0Kdz;D!)9=1_Q(cg~Oo;azYk3CQNJKOn0Bef6`IXw5qUl zg+)`i;Hd2!W|7zKo^Xj#E5LLFUV#^^lUhW9G{aqf-KlMZRV%%&bTO|!!j|U}9}Iz4 zH2~ghVIw9mIt$072FyIUqkcOxZv@U{TQ|z8EIk96iCP}l8_)o_h` zNXl9xW%0H{On}qp*!EV#**;^{wwJ6{)2hgybin1y#otW$zwrv>uQE~*On5B8l!w6q znM{Zwo3;({KRS|e=u*K1B(4Zc=agQ}y#WtUc#VhAgwW#Isz)tYffaLVRcJ{T6ePjY)VA#I~ zyfq2@8?wnw2Xc>tECRP0nAskH*xz8m7gX>Q^u3VUVk=KS0o})vIk1EQ4MmXHz6+Y@ zXU8E2=w+L?p_7Jyi#2(jXr6zu1POb{dNo<$+Hj%8($L^apv=1g;{OotZ@}gCp`VnE zBL*gRS?Q`!DT~6|yO+DGL)YuaA>SXVhNa*mv^SbXcDWbjw0B?7a;JndV=GEv8rMVZ zd3Q2!9ilVH2hBsS&1PvRHsibf(0sNK#iYr&37H<4JXiuB@(X~>yt^8LRpW5pgr8LM zFtxB88nAPRJ6wk}8>5PQFgN3cxJQp3-G+_YW;=7+VF+!9nvLy{NM^tAQ--YX4Lh@i z4jG#~8GI0Kv&`l!m%(Oo_Ip-4@cU7#7Fc_fj=H1JA-L1ZA7hDUh60PZ8m*b&)xnYh zSy3L8K~UnZ;R6^@fs_=`4$B$l7K+f$Rh>B|FWC#XSa^=Pw8C8|CF+iNnH=B-R{N!I zxWimz-ph5h+W?jKP&B&wk;1pZ;R!5akzNT(;$e7|8JbtFQU` zul{H~RPu)@TzqcxuD3q_q#Wk#(kV~8a=BApvwYby_U+jR|LHe=v3!dE?VoeymJ6wA z7H7l4k;RgwtUDxj4^F5okZSQgq z<1P=6JA?iPzM`vQ|KP3!{?Xy2;G5@#SPkyZcn!b#@XdE`cfy^BeyhgsjTPJFYr(Yg zTj3A0+8u!}!0yYcvO^aajwl?42QvO|5 z>|b?z@&0MM{4u!RnlaqLj>RwwMpsy{^n!rFpC{noJs35^zxv^phWs*P6b|!L&LNmf z`kKZZEAowR&2S%G{%z2Nn{Bu;rOoA!!xganlgzZy9WV*7J3b=a7O*>9Sbhk8QvP4? z2TU(N44*H>x>U`3m9Gpuw+*`qe9y z-(V~Lh8yGKPHqL8)fQ;Q@Re+t#j+J_H50%#ScDe++e@^F&3p@3G`L?b_yYEH7N9jh zdx_StnQ;MYdZzhyu7Dxp8rm?jBAv0p=FtUg8`$N=Z$aWZuA_~o25l^_f$uOH*5Stn z{MdvaC-V<68Zz(&MgyB=7qaDmX;d;i0uEp`Ag`k>+qp=;PiwosurFbA^FlW6^5gQL zjq*C$xHBai*^It`jeR>sG9+N3e--V!HYNL546uNGL;E{c*Z~^@C1~g2#k8~hTVNe@ zMix3OVC48T&j@AUj;Moant-KhF`E0Xpt&BG3Qd|o`4Nu9EWTGm3ePx z-L%a66zdRtHC<+qBSgG4uz^LS4S3vxvCGg*3-)*7?N$h3B0~ip_N}G{nx5H3W`730VLQ(`m zDDjuL#PZ$n5k<<@@`qwd${&d<_>H&%j_Tk}ZwrbUoI*Ma(6%pupi}^Mhq92b5ch}L zVnjUz+EDKo$$Eu|$9xfA&=di?#Qgq`#(a)TT67wEu52_~AqK=X)ccR*79{N5Zf_QH z>!4e~{qM*s72N+?SHySVhp7S%5mJp$458&j$92>{yfUp`KbS50HYnf^kku;S_v(rW zgKv7vz63rMt#AVq3<8O+jV`M!&H12icRGthfpc)2Z(Z~;9bQQX=B+=083=K?JVevN z3)Se6&62Z_THu={7MQnol2r;?W9O~c>q=A{?8Um00$t8aEs)9HsymUYd58et-}3ox zksBDzH%pyF@?Cy2Xu!VZkaYy59a}gR5i8hj}uP~b#gFOTTdj=IjO-?BR~UJtu87nbITfdY#KA;@`pB6>ZgNu2P7~8YII`;+QrKj3 z6cQ`CBGM;uFFf=*dptRb3)e>yKSXYFauV5ty0gbgB;G?dMypy6Hp`xfIAShL(m#-GP)Pb)E+RJX5xaQO z9VDklBOkj0Pf#EE80t+c-ajpdkFJwuKiM3GnjT#da{MgU6(RjCc92Ezw;Cd(6_}pW z5FxRs=&o{^72Zy%xCL(PIMH@dTDz{w-}Upa`^nTt`zN+RY@z(?Ua~HwvtPwU#QUND z0ry1Y{_mK3`C{8%g6(5+w<2#}A7uXclbrBS@IG&k{0Vq4!`t=F{@t<7yv@tR<2dZ! zxO<-ctK*RX{OWIA;`R9EdiF2>AtC%CHpB2bd~*@M?CnWE(Kg*-v7_F5cy(*}C}37T z&i>rU{@ld=yqo>Gnf(T z*G4TyjDJLKX;O?QJdAV9q8zhG!TCk9b_M4j=!%e0(7)=6kRB1)en}qj32w!r_lv%1 zSk18`B|4oJJfa}3VlOzOk2)tL?FIc=b}N_ZSI9q|tW+UCt1Cj1pAzgn({S)eXbg&L z2>D*J=}95)&4OzK-3s7WkyR>yU!f}^47kQnk)sV~E)5aViU(fGn1}d-@6}zp_@ndj zht7dq?u9h~cBm6%YN9(7YuQ54$E{>tN>6$Z7oib-=uVJBJBn4Sme~(O<9N^+21*dj z-zGOOA(-xP)?jwzV1qQ+p^VYrBr8^s{WVjsF-hqd z%U02voUlgW;=5$s3K##ND{O7s*Lf1!Uzl zACa4tl$0qT1?=LCz-mReNgjHQYVKa1&hx$@wR8!;+G-T9AXQ zmUwplo@{}_&fn;Y2(zP+uaPMqOc!W~kXGEJ8}>6RAmzg!%8pC2Tly zXIm;A`JK;HXUJ?4sYS{Ee2cQVMvsP!;CJg zEX`TZTNK+1v~LObu#p&Av59MF`-jO;ChY>fSv<5t=>Q)ht5iC`JqQEmJK?o2NT?M(BCbujpH>3O)PD7AW-W zMQr1y{@4&ocjliEm_u4sypSZgu!$%~w43C%CPjPFLmN`7o=pnW*OS#NP}g)t$dPbZ zSA?8}knoo@3*mUw5FxEV53C_VVu5p^h6rW_BuMyKb#eVZg#<~*QJ0-Aro7cpk~~Ic zH@b_nmPIB>%5vHGC|Q@%pC9HTmT(pw73Zyp{rEx05iUfp@f^9C2_bdIyc1SDYZRC9 z3|Y4V@l(1YTkeis4p$(j&4jcVr zaNtGDc!aVX4?iNCp^){Wu87ph@^&i0Sw&uN?Q}tIL^+a^8Csk$U-3w;+{xs#qLQ+i ztX?5ygRY45N%10~I8xMdBxM)5Nl8bHjD)(7vV*K%A>|TX5$Th%3nIX#3Aw45k)oC( zDJ61~l9N*8HnDSnywR(;FO#fZA!SBaMCzoB?S!|{#!{k`A|WohIY|i_hYUp>Hkfsx zW1g&Bq2q+Eh}7vA-2<;bt;7tFa3PZM0J$+q$r#J>7g=@T;(oGjg^T-iMWoKf6o$lb zO7>x&kWd5`T?Ki0n%uCYysQ@CF|*7kCnD~8l5By(&f~fwQfFt~PJV=&WF`Y!`WYg@ zrAvG@Wa)?G1}0?*&J*DlN``W<*`He|V3rZ`3uG%4rk>Xok(ep%T;R|S{{YF*_z9FC zA)AKN3X9=+iw-*!4%U+uD;%uhB9?H~&U4#r7p32@VDFD8N0cunH#TXv$J{sDNhxho zu)c__Ucvf&T@kXspNn)Y_VRs7c&0AAL{~v-406MgQnT9gNDHuY9oYhfowwwnUB9?HjT8rT{dzVJWp3TVC1=3}) zwGi)T$qi46_c{?&Gy8J(Y);yzp#N2}5eoWW(G?;4{$C)0i#>a7K$=PbgY6ve!c@14 zNY;bF^V9iN4T z^6c}+m70;>NH#*DX`QZ!)M*;u%U)hzn~UK`EkkULJi$}eWUwZ&Kx|v=w+V+lVP|J`-DS=G-;n0%hs7Se#Sx_ zqc&N$(jzLmBEno~&?$Qa-eA`dA+30z``usd;IrqNmg$5JrV!V#1N%bl9DkA_fWY_ zxh|yaC979Rxk^_=>ZGikw!_EY;U$E=Nj5ww^gY=I)2s}E>&Y4wv}?K|Qb)UopHdTa z`{Ekn{ol!^C&jxL&!SNQzn8310sMoyB2ou@<@8~z9>g0jA>6-DHascZ(7l;vrF%a{ z)~KNUsIG|A(H?kH!-O0CMe|q?@{a3>`~M|3At~;ISvZ*lZsju@6!8C&tX2X48@eJ= z2Y-m4Np^k9c3RaS{DBfAVC7g^vE?w_8G)0?gdGY6Cy^B^6#UoAmV*AvZ2NH4a6-FW z(`N#eNVT zQ_r=~1_k^p$!ZnwFV_{3I{3YChVo1$guHhVVXu>oPYQbg@Er;aI(5ShZl_<6lJ%zC|`aDF^+) z0qR#^|2kQz0{gSNBEqn1+)$DCWH5KFAwpX5Io*`3v;yx_yd*2|&X9%(W(7PxdjK9X zUBVkBu&W7jX0WOWdYkfjE4<@1P8|;h^A|wLp?3Kq{CFLHT!J63=O5Ainl&u)=~?xN zv6IOvu~)|*F}9IQjKwwn)`<2UsJ`ifW7V5MSmBKu;wt)#%g7B)h^-56+z^_?fIk~l zq0&pqN`;6Ed=anXA~fLCz0|2o`nhl?;u;D5O7FSgnF>sTan7ez6&)3>39fbY{!@jh3+8$9c)E$K zQuyoG6L8maiAxwyjqkK;HP|KMzd0f3nAKtg`}O3OCj{G_V8_!ji~M&acqzB-pcA!U zOx7;E$$7qri!?>3ant!+(&GF0gC;y90mmeWejnszEL@7fnB-O^rDZ(Z1bf(KD$gDP zsbpn_tXyFwuPfp@_#r}&79ISyS1cXjQnY2B+??ce@Y`SA=r}=EuF!F-u87p>=r~Zv z>yLp=(-GxJ$^GOeC8ebEz#Y#fWsKZMRqVq^RXc%9G?KB`3u( ztM(DItK)i{tX?7I%eo>`C&fR##p{y+N|aJ0n$z$x*Uq6{r9P9SNE0{YrtjL*r4Oyjv_$n@92?N(5d_*x~8&IGGF};Y~ zz@+_oSUiLngY5Za#R{_L>WYwk`D`R-u~U1K-Wdm(nt3#8LsnD;B;-1BqmmM`%0J&A z2UZ2QXvrS`HnM(&m$&GONS&8af1ZsP9pOUc;}&vblJYSI8@0p?95Y7VP1db&@lIV4 zVJ>7!W#RMzS`n3dMQ2EtRhH%~u#C~3etM@%hEohCQC#mL_JxPZU?%Mgu!#n>3j*bM ze1NP|=>zw35lc7&4YC*Km2WMBR=GPBsz z&(QSoS|O5vKnXJNLvk~cG5{}c0y}bX6udxItWfa0u81%N8XoCmpc@gy@ueX`TCspr z)4d(ix3gr_=0Y16T>mPXzjakwVKuxvO6XVI+AGLP74lEh6|n@c+ts>JXa+NreLKZf zgnbX${G{U!U>BMc*smljRbandS48Ttk6!Co`~Y2OKD_lgh<>;bNvM+>laz$9ta#~k zPFSOGQ6=kExG3w2NS%wpofUYiDl_As9cdq6q8HSv$jDgdU_KrVg_5S#r~ova*H;W@sC%LTBw9+NKcn2-yUM zpoertq)*Uv0)nFJAVJ?EH!V3q>~+Qo2>LqN1cjhybwwm5NP9upahhFV5z}!UnOHWJ zRsa=o%AH&p{!|w_d9U}!T*MNt47tk@CoB19J%!fXF?A5@Q&Ynl-BS3}C;yB9iTlZ9 z6O>-RQCEcQ_3OBZMZdYuPeSt!_sbNm*;&&uYlYAT#n@U%(i_OlOX`~Nyfn|gT!($i z>~R^{2!*Cgbw#93(sNRw=!!_67dB&i z2t@J{Q2}{*Ke%t+;P`a&(3AVU*Y)}SF4zmA zDqxQ|C$%22D(k@7PY(uZ+kubwz}E(V$lL4%|SkAwpWQMtAcNvjTR;A6(j< z@qIfhMnidQ^E%k!j$P|;h?jTZ7Wf(bDB{N~ew6q}w1a2OO1Lk+L{^EtDgLodlS^E} znRA1;x22ZZKfTj#6-v7<%h)qz*q9z1)7>f}0WKMhgao)7{k<-=T)k0XRu*S+!b&kf zZv^dV$2{2%A>tNa#0gCi>aO`)xun>Iy>{%m#%Jq*3CGyN7Wx7k9zo9HDj`k}k{g+n zueDj9B?qm`p>+yZpCa3!aP*C+H*KC&T@ZKK(D(ZfbY<^PY`?FP{UxEDx zWTgu1|Een@b=b!)YgrX`#IzXFL06-cA`KhX1XloyHYvN~*%@XJYTmxf!i z?9A1`?Id{_v7aF~ASw3j)M>b{$1G5g&y%$($iH1zMC!;7aO55PSm-Q_j_Zj1333yX zVn2x3a~l-!ZzZc$z<-afh}6OFW8hCu?+NyL|0)81AKCn*z{4po%;7XDYM=idvQh>1 z-_jM4I_$#?b|Zt4M-cm95fbn?xgkjj7~upMIbn&?`M*rotg!GWx*}3%VPZ!S0-zQ| zpN@3{99n1N0crQ{d~zB8@22+F^6#?rK}1C)=6Q14k`gnSHHr`o1&mYJ`94{_!p=YI zib$OuJ`lVcFcD+KFG4ETtW7I4#WCWmQ&?C<)~v8Ft}9}RScrVX6B6VVAqy9g8(Wv!jDTfZh?aQN6A_hE3H1CLnn>`*9pHCeGj!CAT@Qm0@&?tn#4Wz{k>M&a;FQs& z9@6txaubu%vq9{KMZaa$ave4*WL--(Lm}&+u81&Ma+AoycVEzosAv80HY;6LS(=m9 zz3?gjUidZag|1O|!lSETmw6u<=%ig{wY(1wy~a5ncNhE)vIRf8lh@kL;mlF1S%Q1tQE&Z?s(_rVTc1|^yefMXtjaN~a=ujxF{{b?6=Ej2h$VFL z!z_*HH!0w7f<*}Nh2$nC?e-%)h3H$NfO{TUvjXm`bw$Wte-`qy*dBjOoO9(jKR|?1 zid-BbHzz3<mA28wNL%vK6qt?jw-NKF!PM8}h6}MV50W8G+9$^F z{lxs4ug+KJ%0S^$WZg=S_=K*A)VWyTJ>1Wb4Nr=D@IBlT?Wf2Z6||qw6_GmHy_Z{N zCA=ZmyNEsgM`YuZBHovsMePDGiTR6UoeJhZ&=rw7=KWW)Gj5eV=<+h+zIj7hQSShr zvdb(`kl#Sosvy5sS48T_53)n>uZegubY}sgzk}R}q`iI!=6s_Vd@Z!>`InIOD)_%v zS48Ug%lAJA;$V3hu{X&LNQ%AsT4;&<3|Xs!d|p>X>d3FdcS4_;fw$$tJAyIPQD2-J zUk#a=CpR!DGwZVW#%T8DRxl8wA8w%HqE3*FP>8x!S48SWjrecZ1*Sqf)I()R$^GP} zB&B3jzE79EPFI~P?jx&Ki1-~{5s8V=PgqThG*#wmcxKFi_wt3F(VL8@fSf!@ZdFoF zR>3wPOrGV~lWb^}GD03F>sN^RG8eIg39I#6D$O(DfAh>O=JjW8sln$Q`!W|A1YPPO z_|KCYpA`J5Y^9k43v=f6aB_PN%!B{cVex&k0Sfy6tSdqei+@4_7dxYM>J|uH8_mX< zTbjq~K#x@euGpW3bpw2@+M(ON3F;$lYc{48?y^%xxL7zTPd4IcFXV-U#t7A`usnjZZp$dLi;<$`#1ZC#zH-KUY^o7;=sLluU7< z*VGUptymz%r9GWZz*}yu0=z(5&KrRsJfa-?Lz#?h(*7{X-gwJw>Nc0nk<}}GqsT=p z;aoPk1rBUFbBpbOZ?s`ntJ$F^J)sE zT@i8s+=6T^_QbV*i&3dSY*8_*dyQtHbSC@G{}ptGUFso2pC&gkDMM?sU{a1*SY;OG z;2Zyk%G4*xHYiMeTvtSxDGhHY9VQM<4H43c1staCSp^&S!DC`a%nZL-pP98Cpdzz% zFC61nHQ!);1vC%oAm%v8J0x5#EF-RA4MBEp1ea4x$I z?wQgMA+1PjOWRt1OWQ8-08`Yiw%A(OU&c126%4PF8{52hVaM%l8zvi}^p*iGVhLy7 z&Mj<#@TRi>F+Pjjyrg52?QMItI{I>Cg$kap(iI{5{VS1@#hzaMU2Fl={i_K1L9+Q2 z$j?xK1en}A?QwB5vdadnBLP6A+1O&4ZGe?!|w2>J$R3JZBS48TNuM)Y~TF3MlOvgsnz}|ly zxmii6nDR2RwT_8VrRHs90~BiBqAMbGYBsUea>1@OS@zbRg}u+Q9CfdXWZgn;Xi~B^ z^EI@vG-uDkCg`rLy_;-_!rD7^MWoK!dYrf6=-gQgHmt{H-MiF7zCK27Vp6^~WO3ex zlkAy|-7~o#C7Yp;_3OGK!enVgY%=J>FhWCwv?8sbZ=)adUDm1`-qq#)d)J!SZ=NNi zowVOg@2-PCOSIjL3sU$VP$OkfdzjK`6c@0z#RD ze+OB!!one45vjA_9d+V2Kj5B}Qsm-xa&wY$;U9$J+oRC&-^j`pI&Rh#5vD^U*pl%Y z&ixu9q!nq!YjPLlv{`^dew&de0LIqBUh)|-%1L`k$6m>XurDq~`#rJ|N^g0Pi+Fj) zXwQ+GmlR_bqg|*549}1iDtJDnD?;}BCy?M`Vo(<}d1s zNFDQaB1rQFa!jBWUk#m2CX-g=yxt4eJPW%7Y@5keC`@h86_GkqgDhQV6suM(bbGP0 z0NL0@ZbZ^CGQ?AH!U_SN4Apj!^(y#ZqAMbG{Q1e*RkJ!{h97tjlpq5oax;=LfM;rZ zb|@5>WW@>vGrA&Dr(lr3114$+bQB-~F1Zm&2^hk6zn~Qg{_|wL3jQZ_MWl}Z5QEw4 zdV!TnpadCsfZU9v3=DGyJUbK$?k6i&D7a5oMCud_dmBzz{|hbK14T%})8vLEC1J$h zT*56;Sa_1GSz+OET@k6XFe0GFJ{Y7SRE9kKkld7{JdAog2wM~)ULdPhh5z>mZQY9PwTU%^9 zD;%1@-eDQFp{ZL%>?C{0SSKB$8|95HcCM|kGA?IwCD{(8+g#2?ygYLzRdVx^!ps-& z5id_DlQk-U&gqJfBcOz0H|bgv z-OeNAW+vrklb1T_u(M0{P2fZ5%8@Qoc@ZNK#Vp zC9b|D0z#QXd6ukMVd1N~B2s4ojs}Dr7QE3Jww#GsFc`Q+RX|35N^VqAM%dYbP5z$g z4yzPieoWS{@bVwJB2wqYf7^XvQSV~wPTk`6;20!BOum?dje0L|!%kez)q7xD9X67VXr`6SFE9tFIDtWm*y zm#&D^F(3AhWn;rQ7|sQY(4*AI4M~dri1+Ycj$5L*lEY-p3JWD&5vjAlZ;h!8$jgZS z2gwaciay>ki$?xVvQ`CoS64*p$n$OWv#nZz-J%Nhf3~s0FG2<$B{w7~1GwYfSEuy< zhsl~179P+Qkva?Bo_fFefs~h0id=ky+?=Fb_&e@>dlWjpMpmxS@wBdp)ajV=CWWd| zmm?s+Npuw?=D)}dOG?aYf06*pa`Ei^C)ompogeCo2(zQHtdJ`cjD9slNGsA>nXL0y zCcDgrHCNkZ7ou+Q$5+G7vTaLRYn1hJjZ)+m!t*n6xA%X6Y=zQcwsH|K&xOj>omMMMY8nOjS zAK9lXB6W7wh!6ox}Ex6h# zJ764k^zVdvNE59;f*;55;|BbAC;y1<=&Wh(AncMW*-p)+QLeUHw$DQU%VFxriln7c1XrR_Z}0@e<{yt;2j9ocEuX05rF6A|Bs$`F5x+?1sFk7nVt+zwk5B4){| z6(S0{B2p(}aKGtPt%mxfPiFyA@P2Y5l2R~~txGEu{NGE~tKfgTu87p}@12f#s=>R6 zxIaiXJ}K^futS?aQ=wq~DY8xl^H1oCNFDQ`1M_u4_c!PhZo7Z6)t|DDktQOF;ZcY8n#3c7>6= zu81%rGM}{Yl3iGFm!FEjC7y-|X~jnFRAZOcx~r4E9Z?Ak|0?!^d&wXs?FIeW*hIw# z$x0RS@6;6$hFya>Nj|1aG(<=%FqNetf>{Ci$W!$4k=ps1aSZh{HY|43WpDX5e_%XL zW+=L6u?8-bmHaYUm(rpBgp1Hf)o3FL2fG=?3_Q4)sn~PD2tHVZBlTa%ZA^%#%MNxk ziaD?($1D-hNMHS3vStO{f9Q_xqWiv{J?0U!5(HITLo`RXE>0Av^iH=oTj9DD7>CFz z6&U+2EC*&%o;Y5$Ak)44u>;{*R(MUR|AR))}#gD4j zl2t3+;R0O|VInlRl-&V6r-le=#UFL=4%#j@kO>JqVh||7zEC5hnY1q~kRv%vR;=`d z5*MK{d+7$3`~+l?`3bt&KnWsyC%J*ik)4B+d^|f8m+O)hE6C34ijckg1d_AZ&Tdrf ze(+i!=-=T&B;sLmW0Ddv7CL!MjUpZ(>sGk9Uspu>TXZcY5Sc$%zR;o?bM5$SUwj_Qpb7okGr;y=laNzR3XZ{+r@QGC=7$+{ITUeFbh zIv1-B$eR=}IIeG*jnEF+$QsDXDQBb=qfd3-w18oPb}7_sA{(GkvtCz3m>P}vN``0{ z9%zV=R$z#xAp-LhEqAPG7xJ}MH4o`v$AWz|YvpoK)V!K8DMC@!LN3 z(Nn&feGHZNvyZ{@HSFUR-^0HkS{wkL&r?tlc9#BeHw2<&H9i@D35s$=~2` zQyVYAUGk1g<4~*Vm}cIp6)G)AT!LNP0=C=bXfN!0I?n#w$o|~K{=A$0xtaaBmHoMm z{kfg}nP-3A$Nsz@{+JDSoV^RRk#E|0$DC3cnK< znKXCA`v$nqvMVijMWJ5jB8ME?Zsr@ut21_`UET_M-QH>Zc28SuX?h5*?sEsMBJ{+o zovZ8Zeb6z?YP|yQF5GW8MzsM~hP^90oH_P=sA$4DG$Q4-&+UV|4SbK>K6lJ&956de z=iPyPp#*%xw!QWtus3hi?AlIwr8VRBupbAoSzcyex0Y+*F`$usFo(CG`@l6Ho0V0g zS?a7bQZgEO@Ln7+{5cy@^L#+f^YJv#JKB7ijiz}%nCAIdn&(4lo{yw?K9J`5IGX3f zXr7Ov`IfJGdHr~Y;__YGNWXN218!X!FRwS6ywkfwb;q8w>+Bo^-XhV+-ik3}R=DAA z|D0KaUSu9?mwy|imo~d2je5zd9ots13r59+?w3F47_|n_1Y-6(_OavbdjPPHL2Y*| zUombto^Of@CX~3n_(L*Oz~FKjpg@wym+Eq9nVJ?y4olPq)7@WI?P zd@u(FAFN}+2XoW#!Q3=_FgFb!%uT}wbJOs_+%$Z!ZKm+SGG~Wi==NGwXkw%74hgzj zO$(SBzZ{$=8zgV4S=aBf;K3R`e#`HGpZQM8ovb$scB@b-&al*_y{&O%4k&D}3V#W$ zyK4ppYK6PucKJDm!pJWBXsu!!MJB$1GTlkrvF5CrQOR>#^6&ya=*{i`a{+nb*W4j+ hHhKO^@?)&8yQ^@+RlWi4ss*F)81y~1V|HfS{|5(03jP29 diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 0fda17239ad30130bf8b07ea5b6b6ab2f37d5848..19d20d8d315e2f961d72371bed76b0e1473c5ff6 100644 GIT binary patch delta 1082 zcmaizOK1~e5XZaOyb~Hy>BgF-rL=jGHb_xH1RoToV#z`9AQF6e1R6(yZkGv65xIm)avev-5)tQR=4Y|G(4 zh8@QD2z!DFlFRI&`Dx(bATYo}ECY#*xxhoHLK85Qr4Ysw!83|yEK5y@LK?$U&2WfA z;+)G|0FUL&$$3+gD51$4w4Ut%C%7=nLw>RmtQW99;dYiKpY4~XF6wpdS=2rav4(En z?jS^T92<+m3`U>q5%t_L$VK6JColR#rXP+|!w9V#nyTctLoYURv&`mZ?A+ra|$`S;RZwUE&-Ew|hxodsVH-8`QFcQ7ljxhlzT>Znb2C9kN09 zqd{fs8tyk8S=F;SvgjTq>+Xuk!NXqV>e6ju4yEty6};T8-{fibc-0fOK_B_!2_M+` z;&D1SGVOg9dI2l&3SPq-ScP}+9zMVte1b2;?aN=26ho77p0m{QYJ6GXONOi}6u#9V zpSJw($NG=EA+3O+3Wg?0Q)P`Wl_ZVw-LqW#k6YTBeQTmD6$J9tH|}U`0de^!&urU+ zB<8Z6d+;y0dvS2oR8tcq3UTBnOa2Q?y7tz8mti6`x&JW3#A^=%U>n(l4c+o6d{Hu% zO6a;mVKbw{5PmlxMWO>QC%v*bFQ}$spdrgAsD*+g)LWuc%Qe&bPcZQ&Jx|H+fy`ef CjCtb# delta 1052 zcmaizPiPZS5XSS8Z2mN%Y13|6+SqDM(^^eLP(h>=MU+wrco1^1E!*8~CXnndyKku; zf_f8Kgz}yTMZ|NjLBWf9(;}iGQi=o*y@(z>6ngREBx!0B+jL=eVfo%SznM3)mVB3t z-4Py6_PA<~)2ZmPP4fjSz1(-!4X)+6pTxzc$!`*3=iHhn2qIf?FXF#$PaNNA&lKrm zn&f&{S=ABX-~4g(l*j3JD}v)qORq)<5Bzw_#fbM1<{S3Di0y65etB=CvR2jm3VL6H(VDMoe-K86^G6bJ z5!F*|RG$PfmVn7-UaSw9{sCR-9%5sNz)@w8r( zvpl`Xq`)xy9w;dyJZqP(YTY1?q4kr4#E%>K>pb-?zX=XTorq;XUb~r=6h+e&)#9uY z930qt6mVWd7VUW5_ZC*+J$!(V@EN|qS6G8}_y!gBqa$})mJFKLH4Yn9%9q;>=tqF( zt&~oL>M}J|HML|)hM}5VY8~hDf8grQ_&bRuwIJ(7HAVH5Vad8JgTgAIUZJ)ZY%6r) z@~+JoM=MYBX8iMNT_qeo-8N;FLlVni5WY@QIU%L!^y lQKh#G>|Tk(R>p#U{BFVo>y56419@fMqLNAZ3}L~Z%wNznY3%?2 diff --git a/docs/build/doctrees/intro.doctree b/docs/build/doctrees/intro.doctree index 92f41da43a9da665317f98940022387197123d38..4e0ad1b71f04999d1def2f8ff3823a2f703ad226 100644 GIT binary patch literal 13144 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 diff --git a/docs/build/doctrees/permission.doctree b/docs/build/doctrees/permission.doctree index 11bc26d379fff4083cf82d7a2d40cfde4084f601..100bd986a8b0f64cbe2d10ab05e1ee9aadf0e9ae 100644 GIT binary patch literal 16816 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 GH~tUtLRf47 diff --git a/docs/build/doctrees/server.doctree b/docs/build/doctrees/server.doctree index a70b9d591d425fa85041d4fd3353da67ed06639b..6a68c08b0a5ee9c86e2b420487f342e3d3b25fe7 100644 GIT binary patch literal 31182 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 mW1=t)BHNVSYrI<;vsCd`S6aNd;P|L#r diff --git a/docs/build/doctrees/support.doctree b/docs/build/doctrees/support.doctree index fa3281f3070269a62da5c57160eadf73334008f3..8f465083e002fb3a2575364fd5631e2e9b9ae9f1 100644 GIT binary patch delta 3309 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 diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index e2ac7cc..a3dae6f 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: aa916f445d3f5a8bbc098f4ea69de939 +config: 7842dbe2cdf77bebdb8cc379df60cf5c tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/cmdlets.rst.txt b/docs/build/html/_sources/cmdlets.rst.txt index cd386ca..2d49f15 100644 --- a/docs/build/html/_sources/cmdlets.rst.txt +++ b/docs/build/html/_sources/cmdlets.rst.txt @@ -489,7 +489,7 @@ Documents .. code-block:: powershell - Set-CouchDBDocument [[-Server] ] [[-Port] ] [-Database] [-Document] [-Revision] [[-Data] ] [-Replace] [[-Attachment] ] [-BatchMode] [-NoConflict] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] + Set-CouchDBDocument [[-Server] ] [[-Port] ] [-Database] [-Document] [-Revision] [[-Data] ] [[-Partition] ] [-Replace] [[-Attachment] ] [-BatchMode] [-NoConflict] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] **Remove-CouchDBDocument** diff --git a/docs/build/html/_sources/documents.rst.txt b/docs/build/html/_sources/documents.rst.txt index 70f0104..bfda357 100644 --- a/docs/build/html/_sources/documents.rst.txt +++ b/docs/build/html/_sources/documents.rst.txt @@ -52,6 +52,7 @@ Latest Forces retrieving latest “leaf” revision, no matter what LocalSequence Includes last update sequence for the document. Metadata Acts same as specifying all conflicts, deleted_conflicts and revs_info query parameters. OpenRevisions Retrieves documents of specified leaf revisions. Additionally, value all id default and to return all leaf revisions. +Partition CouchDB partition name ================ =========== And if use **_all_docs** view, in this table you can find all the possible parameters. diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css index ea6972d..be19270 100644 --- a/docs/build/html/_static/basic.css +++ b/docs/build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -15,6 +15,12 @@ div.clearer { clear: both; } +div.section::after { + display: block; + content: ''; + clear: left; +} + /* -- relbar ---------------------------------------------------------------- */ div.related { @@ -316,21 +322,27 @@ img.align-default, .figure.align-default { div.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; - padding: 7px 7px 0 7px; + padding: 7px; background-color: #ffe; width: 40%; float: right; + clear: right; + overflow-x: auto; } p.sidebar-title { font-weight: bold; } +div.admonition, div.topic, blockquote { + clear: left; +} + /* -- topics ---------------------------------------------------------------- */ div.topic { border: 1px solid #ccc; - padding: 7px 7px 0 7px; + padding: 7px; margin: 10px 0 10px 0; } @@ -352,10 +364,6 @@ div.admonition dt { font-weight: bold; } -div.admonition dl { - margin-bottom: 0; -} - p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; @@ -366,9 +374,28 @@ div.body p.centered { margin-top: 25px; } +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + /* -- tables ---------------------------------------------------------------- */ table.docutils { + margin-top: 10px; + margin-bottom: 10px; border: 0; border-collapse: collapse; } @@ -416,13 +443,13 @@ table.citation td { border-bottom: none; } -th > p:first-child, -td > p:first-child { +th > :first-child, +td > :first-child { margin-top: 0px; } -th > p:last-child, -td > p:last-child { +th > :last-child, +td > :last-child { margin-bottom: 0px; } @@ -468,6 +495,10 @@ table.field-list td, table.field-list th { /* -- hlist styles ---------------------------------------------------------- */ +table.hlist { + margin: 1em 0; +} + table.hlist td { vertical-align: top; } @@ -495,17 +526,37 @@ ol.upperroman { list-style: upper-roman; } -li > p:first-child { +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { margin-top: 0px; } -li > p:last-child { +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { margin-bottom: 0px; } +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + dl.footnote > dt, dl.citation > dt { float: left; + margin-right: 0.5em; } dl.footnote > dd, @@ -546,7 +597,7 @@ dl { margin-bottom: 15px; } -dd > p:first-child { +dd > :first-child { margin-top: 0px; } @@ -560,6 +611,11 @@ dd { margin-left: 30px; } +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + dt:target, span.highlighted { background-color: #fbe54e; } @@ -637,6 +693,10 @@ pre { overflow-y: hidden; /* fixes display issues on Chrome browsers */ } +pre, div[class*="highlight-"] { + clear: both; +} + span.pre { -moz-hyphens: none; -ms-hyphens: none; @@ -644,22 +704,57 @@ span.pre { hyphens: none; } +div[class*="highlight-"] { + margin: 1em 0; +} + td.linenos pre { - padding: 5px 0px; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { - margin-left: 0.5em; + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; } table.highlighttable td { - padding: 0 0.5em 0 0.5em; + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; } div.code-block-caption { + margin-top: 1em; padding: 2px 5px; font-size: small; } @@ -668,8 +763,10 @@ div.code-block-caption code { background-color: transparent; } -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; +table.highlighttable td.linenos, +span.linenos, +div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; } div.code-block-caption span.caption-number { @@ -681,11 +778,7 @@ div.code-block-caption span.caption-text { } div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; + margin: 1em 0; } code.descname { @@ -736,8 +829,7 @@ span.eqno { } span.eqno a.headerlink { - position: relative; - left: 0px; + position: absolute; z-index: 1; } diff --git a/docs/build/html/_static/css/badge_only.css b/docs/build/html/_static/css/badge_only.css index 3c33cef..dde05c6 100644 --- a/docs/build/html/_static/css/badge_only.css +++ b/docs/build/html/_static/css/badge_only.css @@ -1 +1 @@ -.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} +.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:local("fontawesome/FontAwesome") format("truetype")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} diff --git a/docs/build/html/_static/css/theme.css b/docs/build/html/_static/css/theme.css index aed8cef..775a37a 100644 --- a/docs/build/html/_static/css/theme.css +++ b/docs/build/html/_static/css/theme.css @@ -1,6 +1,4 @@ -/* sphinx_rtd_theme version 0.4.3 | MIT license */ -/* Built 20190212 16:02 */ -*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:hover,a:active{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;color:#000;text-decoration:none}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold}pre,code,.rst-content tt,.rst-content code,kbd,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}ul,ol,dl{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:0;margin:0;padding:0}label{cursor:pointer}legend{border:0;*margin-left:-7px;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{html,body,section{background:none !important}*{box-shadow:none !important;text-shadow:none !important;filter:none !important;-ms-filter:none !important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,.rst-content .toctree-wrapper p.caption,h3{orphans:3;widows:3}h2,.rst-content .toctree-wrapper p.caption,h3{page-break-after:avoid}}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content .code-block-caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.rst-content .admonition,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}/*! +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a,.wy-menu-vertical li.current>a span.toctree-expand:before,.wy-menu-vertical li.on a,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li span.toctree-expand:before,.wy-nav-top a,.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content .code-block-caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.wy-menu-vertical li span.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-left.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-left.toctree-expand,.rst-content .fa-pull-left.admonition-title,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content dl dt .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.rst-content code.download span.fa-pull-left:first-child,.fa-pull-left.icon{margin-right:.3em}.fa.fa-pull-right,.wy-menu-vertical li span.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-right.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-right.toctree-expand,.rst-content .fa-pull-right.admonition-title,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content dl dt .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.rst-content code.download span.fa-pull-right:first-child,.fa-pull-right.icon{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.wy-menu-vertical li span.pull-left.toctree-expand,.wy-menu-vertical li.on a span.pull-left.toctree-expand,.wy-menu-vertical li.current>a span.pull-left.toctree-expand,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content .code-block-caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.rst-content code.download span.pull-left:first-child,.pull-left.icon{margin-right:.3em}.fa.pull-right,.wy-menu-vertical li span.pull-right.toctree-expand,.wy-menu-vertical li.on a span.pull-right.toctree-expand,.wy-menu-vertical li.current>a span.pull-right.toctree-expand,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content .code-block-caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.rst-content code.download span.pull-right:first-child,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li span.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content .code-block-caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content .code-block-caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .rst-content p.caption .headerlink,.rst-content p.caption a .headerlink,a .rst-content table>caption .headerlink,.rst-content table>caption a .headerlink,a .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption a .headerlink,a .rst-content tt.download span:first-child,.rst-content tt.download a span:first-child,a .rst-content code.download span:first-child,.rst-content code.download a span:first-child,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .btn span.toctree-expand,.btn .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .btn span.toctree-expand,.btn .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .btn span.toctree-expand,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .rst-content p.caption .headerlink,.rst-content p.caption .btn .headerlink,.btn .rst-content table>caption .headerlink,.rst-content table>caption .btn .headerlink,.btn .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption .btn .headerlink,.btn .rst-content tt.download span:first-child,.rst-content tt.download .btn span:first-child,.btn .rst-content code.download span:first-child,.rst-content code.download .btn span:first-child,.btn .icon,.nav .fa,.nav .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .nav span.toctree-expand,.nav .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .nav span.toctree-expand,.nav .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .nav span.toctree-expand,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .rst-content p.caption .headerlink,.rst-content p.caption .nav .headerlink,.nav .rst-content table>caption .headerlink,.rst-content table>caption .nav .headerlink,.nav .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption .nav .headerlink,.nav .rst-content tt.download span:first-child,.rst-content tt.download .nav span:first-child,.nav .rst-content code.download span:first-child,.rst-content code.download .nav span:first-child,.nav .icon{display:inline}.btn .fa.fa-large,.btn .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .btn span.fa-large.toctree-expand,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .btn .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.btn .rst-content .code-block-caption .fa-large.headerlink,.rst-content .code-block-caption .btn .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .btn span.fa-large:first-child,.btn .rst-content code.download span.fa-large:first-child,.rst-content code.download .btn span.fa-large:first-child,.btn .fa-large.icon,.nav .fa.fa-large,.nav .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .nav span.fa-large.toctree-expand,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .nav .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.nav .rst-content .code-block-caption .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.nav .rst-content code.download span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.nav .fa-large.icon{line-height:.9em}.btn .fa.fa-spin,.btn .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .btn span.fa-spin.toctree-expand,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .btn .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.btn .rst-content .code-block-caption .fa-spin.headerlink,.rst-content .code-block-caption .btn .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .btn span.fa-spin:first-child,.btn .rst-content code.download span.fa-spin:first-child,.rst-content code.download .btn span.fa-spin:first-child,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .nav span.fa-spin.toctree-expand,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .nav .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.nav .rst-content .code-block-caption .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.nav .rst-content code.download span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.wy-menu-vertical li span.btn.toctree-expand:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.rst-content p.caption .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.rst-content code.download span.btn:first-child:before,.btn.icon:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.wy-menu-vertical li span.btn.toctree-expand:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content p.caption .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.rst-content code.download span.btn:first-child:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li .btn-mini span.toctree-expand:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .rst-content p.caption .headerlink:before,.rst-content p.caption .btn-mini .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.rst-content tt.download .btn-mini span:first-child:before,.btn-mini .rst-content code.download span:first-child:before,.rst-content code.download .btn-mini span:first-child:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.rst-content .admonition{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#6ab0de;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.admonition{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo,.rst-content .wy-alert-warning.admonition{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title,.rst-content .wy-alert-warning.admonition .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.admonition{background:#e7f2fa}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition .admonition-title{background:#6ab0de}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.admonition{background:#dbfaf4}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition .admonition-title{background:#1abc9c}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.admonition{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a{color:#2980B9}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#2980B9}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980B9 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#2980B9;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#9B59B6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980B9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980B9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 .3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.3576515979%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.3576515979%;width:48.821174201%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.3576515979%;width:31.7615656014%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type="datetime-local"]{padding:.34375em .625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type="radio"][disabled],input[type="checkbox"][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{position:absolute;content:"";display:block;left:0;top:0;width:36px;height:12px;border-radius:4px;background:#ccc;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{position:absolute;content:"";display:block;width:18px;height:18px;border-radius:4px;background:#999;left:-3px;top:-3px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27AE60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980B9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:.3em;display:block}.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980B9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9B59B6}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#2980B9 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,.rst-content .toctree-wrapper p.caption,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2,.rst-content .toctree-wrapper p.caption{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt,.rst-content code{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:before,.wy-breadcrumbs:after{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs li code,.wy-breadcrumbs li .rst-content tt,.rst-content .wy-breadcrumbs li tt{padding:5px;border:none;background:none}.wy-breadcrumbs li code.literal,.wy-breadcrumbs li .rst-content tt.literal,.rst-content .wy-breadcrumbs li tt.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#3a7ca8;height:32px;display:inline-block;line-height:32px;padding:0 1.618em;margin:12px 0 0 0;display:block;font-weight:bold;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li code,.wy-menu-vertical li .rst-content tt,.rst-content .wy-menu-vertical li tt{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li span.toctree-expand{display:block;float:left;margin-left:-1.2em;font-size:.8em;line-height:1.6em;color:#4d4d4d}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.on a:hover span.toctree-expand,.wy-menu-vertical li.current>a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand{display:block;font-size:.8em;line-height:1.6em;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a{color:#404040}.wy-menu-vertical li.toctree-l1.current li.toctree-l2>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>ul{display:none}.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>ul{display:block}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{display:block;background:#c9c9c9;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l2 span.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3{font-size:.9em}.wy-menu-vertical li.toctree-l3.current>a{background:#bdbdbd;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{display:block;background:#bdbdbd;padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l3 span.toctree-expand{color:#969696}.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover span.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980B9;cursor:pointer;color:#fff}.wy-menu-vertical a:active span.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980B9;text-align:center;padding:.809em;display:block;color:#fcfcfc;margin-bottom:.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em auto;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-side-nav-search>a img.logo,.wy-side-nav-search .wy-dropdown>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search>a.icon img.logo,.wy-side-nav-search .wy-dropdown>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:normal;color:rgba(255,255,255,0.3)}.wy-nav .wy-menu-vertical header{color:#2980B9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980B9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980B9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:gray}footer p{margin-bottom:12px}footer span.commit code,footer span.commit .rst-content tt,.rst-content footer span.commit tt{padding:0px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:1em;background:none;border:none;color:gray}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{width:100%}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:before,.rst-breadcrumbs-buttons:after{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-side-scroll{width:auto}.wy-side-nav-search{width:auto}.wy-menu.wy-menu-vertical{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1100px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content p.caption .headerlink,.rst-content p.caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content img{max-width:100%;height:auto}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure p.caption{font-style:italic}.rst-content div.figure p:last-child.caption{margin-bottom:0px}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px 12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;display:block;overflow:auto}.rst-content pre.literal-block,.rst-content div[class^='highlight']{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px 0}.rst-content pre.literal-block div[class^='highlight'],.rst-content div[class^='highlight'] div[class^='highlight']{padding:0px;border:none;margin:0}.rst-content div[class^='highlight'] td.code{width:100%}.rst-content .linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;display:block;overflow:auto}.rst-content div[class^='highlight'] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content pre.literal-block,.rst-content div[class^='highlight'] pre,.rst-content .linenodiv pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;line-height:1.4}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^='highlight'],.rst-content div[class^='highlight'] pre{white-space:pre-wrap}}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last,.rst-content .admonition .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .section ol p:last-child,.rst-content .section ul p:last-child{margin-bottom:24px}.rst-content .line-block{margin-left:0px;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content .toctree-wrapper p.caption .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content .code-block-caption .headerlink{visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content .toctree-wrapper p.caption .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after,.rst-content p.caption .headerlink:after,.rst-content table>caption .headerlink:after,.rst-content .code-block-caption .headerlink:after{content:"";font-family:FontAwesome}.rst-content h1:hover .headerlink:after,.rst-content h2:hover .headerlink:after,.rst-content .toctree-wrapper p.caption:hover .headerlink:after,.rst-content h3:hover .headerlink:after,.rst-content h4:hover .headerlink:after,.rst-content h5:hover .headerlink:after,.rst-content h6:hover .headerlink:after,.rst-content dl dt:hover .headerlink:after,.rst-content p.caption:hover .headerlink:after,.rst-content table>caption:hover .headerlink:after,.rst-content .code-block-caption:hover .headerlink:after{visibility:visible}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:baseline;position:relative;top:-0.4em;line-height:0;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:gray}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.docutils.citation tt,.rst-content table.docutils.citation code,.rst-content table.docutils.footnote tt,.rst-content table.docutils.footnote code{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}.rst-content table.docutils td .last,.rst-content table.docutils td .last :last-child{margin-bottom:0}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none}.rst-content table.field-list td p{font-size:inherit;line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content tt,.rst-content tt,.rst-content code{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;padding:2px 5px}.rst-content tt big,.rst-content tt em,.rst-content tt big,.rst-content code big,.rst-content tt em,.rst-content code em{font-size:100% !important;line-height:normal}.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal{color:#E74C3C}.rst-content tt.xref,a .rst-content tt,.rst-content tt.xref,.rst-content code.xref,a .rst-content tt,a .rst-content code{font-weight:bold;color:#404040}.rst-content pre,.rst-content kbd,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace}.rst-content a tt,.rst-content a tt,.rst-content a code{color:#2980B9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold;margin-bottom:12px}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980B9;border-top:solid 3px #6ab0de;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#6ab0de}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:#555}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) code{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) code.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}.rst-content tt.download,.rst-content code.download{background:inherit;padding:inherit;font-weight:normal;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content tt.download span:first-child,.rst-content code.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .versionmodified{font-style:italic}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-regular.eot");src:url("../fonts/Lato/lato-regular.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-regular.woff2") format("woff2"),url("../fonts/Lato/lato-regular.woff") format("woff"),url("../fonts/Lato/lato-regular.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-bold.eot");src:url("../fonts/Lato/lato-bold.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-bold.woff2") format("woff2"),url("../fonts/Lato/lato-bold.woff") format("woff"),url("../fonts/Lato/lato-bold.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-bolditalic.eot");src:url("../fonts/Lato/lato-bolditalic.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-bolditalic.woff2") format("woff2"),url("../fonts/Lato/lato-bolditalic.woff") format("woff"),url("../fonts/Lato/lato-bolditalic.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-italic.eot");src:url("../fonts/Lato/lato-italic.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-italic.woff2") format("woff2"),url("../fonts/Lato/lato-italic.woff") format("woff"),url("../fonts/Lato/lato-italic.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:400;src:url("../fonts/RobotoSlab/roboto-slab.eot");src:url("../fonts/RobotoSlab/roboto-slab-v7-regular.eot?#iefix") format("embedded-opentype"),url("../fonts/RobotoSlab/roboto-slab-v7-regular.woff2") format("woff2"),url("../fonts/RobotoSlab/roboto-slab-v7-regular.woff") format("woff"),url("../fonts/RobotoSlab/roboto-slab-v7-regular.ttf") format("truetype")}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:700;src:url("../fonts/RobotoSlab/roboto-slab-v7-bold.eot");src:url("../fonts/RobotoSlab/roboto-slab-v7-bold.eot?#iefix") format("embedded-opentype"),url("../fonts/RobotoSlab/roboto-slab-v7-bold.woff2") format("woff2"),url("../fonts/RobotoSlab/roboto-slab-v7-bold.woff") format("woff"),url("../fonts/RobotoSlab/roboto-slab-v7-bold.ttf") format("truetype")} + */@font-face{font-family:FontAwesome;src:local("fontawesome/FontAwesome") format("truetype");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li span.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a span.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-left.toctree-expand,.wy-menu-vertical li span.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a span.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-right.toctree-expand,.wy-menu-vertical li span.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a span.pull-left.toctree-expand,.wy-menu-vertical li.on a span.pull-left.toctree-expand,.wy-menu-vertical li span.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a span.pull-right.toctree-expand,.wy-menu-vertical li.on a span.pull-right.toctree-expand,.wy-menu-vertical li span.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li span.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li span.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li span.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li a span.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li span.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p.caption .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a span.toctree-expand,.btn .wy-menu-vertical li.on a span.toctree-expand,.btn .wy-menu-vertical li span.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p.caption .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a span.toctree-expand,.nav .wy-menu-vertical li.on a span.toctree-expand,.nav .wy-menu-vertical li span.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p.caption .btn .headerlink,.rst-content p.caption .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn span.toctree-expand,.wy-menu-vertical li.current>a .btn span.toctree-expand,.wy-menu-vertical li.current>a .nav span.toctree-expand,.wy-menu-vertical li .nav span.toctree-expand,.wy-menu-vertical li.on a .btn span.toctree-expand,.wy-menu-vertical li.on a .nav span.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p.caption .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li span.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p.caption .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li span.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p.caption .btn .fa-large.headerlink,.rst-content p.caption .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn span.fa-large.toctree-expand,.wy-menu-vertical li .nav span.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p.caption .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li span.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p.caption .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li span.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p.caption .btn .fa-spin.headerlink,.rst-content p.caption .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn span.fa-spin.toctree-expand,.wy-menu-vertical li .nav span.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p.caption .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li span.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p.caption .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li span.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p.caption .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li span.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p.caption .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini span.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol li,.rst-content ol.arabic li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content ol.arabic li p:last-child,.rst-content ol.arabic li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.rst-content .wy-breadcrumbs li tt,.wy-breadcrumbs li .rst-content tt,.wy-breadcrumbs li code{padding:5px;border:none;background:none}.rst-content .wy-breadcrumbs li tt.literal,.wy-breadcrumbs li .rst-content tt.literal,.wy-breadcrumbs li code.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li span.toctree-expand{display:block;float:left;margin-left:-1.2em;font-size:.8em;line-height:1.6em;color:#4d4d4d}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover span.toctree-expand,.wy-menu-vertical li.on a:hover span.toctree-expand{color:grey}.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand{display:block;font-size:.8em;line-height:1.6em;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover span.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 span.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 span.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover span.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active span.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p.caption .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p.caption .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content img{max-width:100%;height:auto}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure p.caption{font-style:italic}.rst-content div.figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp{user-select:none;pointer-events:none}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink{visibility:hidden;font-size:14px}.rst-content .code-block-caption .headerlink:after,.rst-content .toctree-wrapper>p.caption .headerlink:after,.rst-content dl dt .headerlink:after,.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content p.caption .headerlink:after,.rst-content table>caption .headerlink:after{content:"\f0c1";font-family:FontAwesome}.rst-content .code-block-caption:hover .headerlink:after,.rst-content .toctree-wrapper>p.caption:hover .headerlink:after,.rst-content dl dt:hover .headerlink:after,.rst-content h1:hover .headerlink:after,.rst-content h2:hover .headerlink:after,.rst-content h3:hover .headerlink:after,.rst-content h4:hover .headerlink:after,.rst-content h5:hover .headerlink:after,.rst-content h6:hover .headerlink:after,.rst-content p.caption:hover .headerlink:after,.rst-content table>caption:hover .headerlink:after{visibility:visible}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .hlist{width:100%}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl dt span.classifier:before{content:" : "}html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.field-list>dt:after,html.writer-html5 .rst-content dl.footnote>dt:after{content:":"}html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.footnote>dt>span.brackets{margin-right:.5rem}html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{font-style:italic}html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.footnote>dd p,html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{font-size:inherit;line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.field-list)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.field-list)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code,html.writer-html4 .rst-content dl:not(.docutils) tt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:local(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),local("lato/Lato-Regular") format("truetype);font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:local("lato/Lato-Bold") format("truetype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:local("lato/Lato-BoldItalic") format("truetype");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:local("lato/Lato-Italic") format("truetype");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:local("google-roboto-slab-fonts/RobotoSlab-Regular") format("truetype");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:local("google-robot-slab-fonts/RobotoSlab-Bold") format("truetype");font-display:block} diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js index b33f87f..144884e 100644 --- a/docs/build/html/_static/doctools.js +++ b/docs/build/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -283,10 +283,12 @@ var Documentation = { }, initOnKeyListeners: function() { - $(document).keyup(function(event) { + $(document).keydown(function(event) { var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + // don't navigate when in search box, textarea, dropdown or button + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey + && !event.shiftKey) { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index 6d86510..2fa8c97 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -3,7 +3,9 @@ var DOCUMENTATION_OPTIONS = { VERSION: '', LANGUAGE: 'None', COLLAPSE_INDEX: false, + BUILDER: 'html', FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false diff --git a/docs/build/html/_static/jquery-3.5.1.js b/docs/build/html/_static/jquery-3.5.1.js new file mode 100644 index 0000000..5093733 --- /dev/null +++ b/docs/build/html/_static/jquery-3.5.1.js @@ -0,0 +1,10872 @@ +/*! + * jQuery JavaScript Library v3.5.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2020-05-04T22:49Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.5.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem.namespaceURI, + docElem = ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -141,18 +143,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -231,7 +235,6 @@

Authentication jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/classes.html b/docs/build/html/classes.html index 900c415..3d1695b 100644 --- a/docs/build/html/classes.html +++ b/docs/build/html/classes.html @@ -1,38 +1,38 @@ - - + - + - + Classes — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -283,18 +285,20 @@ + +
@@ -1460,7 +1464,6 @@

Create design document - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -156,18 +158,20 @@ + +
@@ -742,7 +746,6 @@

Aliases jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/config.html b/docs/build/html/config.html index c797303..3c6e3f3 100644 --- a/docs/build/html/config.html +++ b/docs/build/html/config.html @@ -1,38 +1,38 @@ - - + - + - + Setup — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -156,18 +158,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -293,7 +297,6 @@

Modify an element jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/databases.html b/docs/build/html/databases.html index ce0fd63..2b7414b 100644 --- a/docs/build/html/databases.html +++ b/docs/build/html/databases.html @@ -1,38 +1,38 @@ - - + - + - + Databases — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -179,18 +181,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -490,7 +494,6 @@

Partition database jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/ddoc.html b/docs/build/html/ddoc.html index 79ec063..ef19d17 100644 --- a/docs/build/html/ddoc.html +++ b/docs/build/html/ddoc.html @@ -1,38 +1,38 @@ - - + - + - + Design documents — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -160,18 +162,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -411,7 +415,6 @@

Remove design document attachment jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/documents.html b/docs/build/html/documents.html index 421da53..a5eb04e 100644 --- a/docs/build/html/documents.html +++ b/docs/build/html/documents.html @@ -1,38 +1,38 @@ - - + - + - + Documents — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -186,18 +188,20 @@ + + -

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -919,7 +926,6 @@

Explain jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index 3ca07f0..869ce72 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -1,39 +1,38 @@ - - - + - + - + Index — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -75,6 +74,7 @@ + + @@ -140,18 +141,20 @@ + +
    -
  • Docs »
  • +
  • »
  • Index
  • - +
  • @@ -175,20 +178,25 @@

    Index

- @@ -197,7 +205,6 @@

Index

- - - - - + + + - - - - @@ -75,6 +75,7 @@ + + @@ -140,18 +142,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -340,7 +345,6 @@

Welcome to PSCouchDB’s documentation! jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/intro.html b/docs/build/html/intro.html index 33a639c..61bb213 100644 --- a/docs/build/html/intro.html +++ b/docs/build/html/intro.html @@ -1,38 +1,38 @@ - - + - + - + Introduction — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -149,18 +151,20 @@ + +
- @@ -273,7 +277,6 @@

Start - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -153,18 +155,20 @@ + +
@@ -327,7 +331,6 @@

Reset admin password - - - - - + + + - - - - + @@ -76,6 +77,7 @@ + + @@ -141,19 +144,19 @@ + +
@@ -167,8 +170,7 @@ @@ -182,20 +184,25 @@
- @@ -204,7 +211,6 @@ - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -155,18 +157,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -444,7 +448,6 @@

Replication request jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/support.html b/docs/build/html/support.html index 29f2c54..8cf7faf 100644 --- a/docs/build/html/support.html +++ b/docs/build/html/support.html @@ -1,38 +1,38 @@ - - + - + - + Support — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -75,6 +75,7 @@ + + @@ -145,18 +147,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -250,7 +255,6 @@

Donations jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/build/html/uses.html b/docs/build/html/uses.html index 768f9ff..165b61f 100644 --- a/docs/build/html/uses.html +++ b/docs/build/html/uses.html @@ -1,38 +1,38 @@ - - + - + - + Real uses — PSCouchDB documentation + + + + + + + - - - - - + + + - - - - @@ -76,6 +76,7 @@ + + @@ -152,18 +154,20 @@ + +
-

- © Copyright 2020, Matteo Guadrini + © Copyright 2020, Matteo Guadrini.

- Built with Sphinx using a theme provided by Read the Docs. + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. - @@ -403,7 +407,6 @@

Custom document jQuery(function () { SphinxRtdTheme.Navigation.enable(true); diff --git a/docs/source/cmdlets.rst b/docs/source/cmdlets.rst index cd386ca..2d49f15 100644 --- a/docs/source/cmdlets.rst +++ b/docs/source/cmdlets.rst @@ -489,7 +489,7 @@ Documents .. code-block:: powershell - Set-CouchDBDocument [[-Server] ] [[-Port] ] [-Database] [-Document] [-Revision] [[-Data] ] [-Replace] [[-Attachment] ] [-BatchMode] [-NoConflict] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] + Set-CouchDBDocument [[-Server] ] [[-Port] ] [-Database] [-Document] [-Revision] [[-Data] ] [[-Partition] ] [-Replace] [[-Attachment] ] [-BatchMode] [-NoConflict] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] **Remove-CouchDBDocument** diff --git a/docs/source/documents.rst b/docs/source/documents.rst index 70f0104..bfda357 100644 --- a/docs/source/documents.rst +++ b/docs/source/documents.rst @@ -52,6 +52,7 @@ Latest Forces retrieving latest “leaf” revision, no matter what LocalSequence Includes last update sequence for the document. Metadata Acts same as specifying all conflicts, deleted_conflicts and revs_info query parameters. OpenRevisions Retrieves documents of specified leaf revisions. Additionally, value all id default and to return all leaf revisions. +Partition CouchDB partition name ================ =========== And if use **_all_docs** view, in this table you can find all the possible parameters. From 983d4f7a74d6c0334a9487c7d20111e47c819c29 Mon Sep 17 00:00:00 2001 From: Matteo Guadrini Date: Fri, 28 May 2021 16:43:52 +0200 Subject: [PATCH 3/4] Added Set-CouchDBMaintenanceMode cmdlet --- PSCouchDB/PSCouchDB.psd1 | 4 +- PSCouchDB/alias/CouchDBalias.ps1 | 1 + PSCouchDB/functions/CouchDBserver.ps1 | 65 +++++++++++++++++++++++ docs/build/doctrees/cmdlets.doctree | Bin 88598 -> 89387 bytes docs/build/doctrees/environment.pickle | Bin 119323 -> 120174 bytes docs/build/doctrees/server.doctree | Bin 31182 -> 32326 bytes docs/build/html/_sources/cmdlets.rst.txt | 6 +++ docs/build/html/_sources/server.rst.txt | 17 +++++- docs/build/html/cmdlets.html | 4 ++ docs/build/html/index.html | 1 + docs/build/html/searchindex.js | 2 +- docs/build/html/server.html | 12 +++++ docs/source/cmdlets.rst | 6 +++ docs/source/server.rst | 17 +++++- 14 files changed, 131 insertions(+), 4 deletions(-) diff --git a/PSCouchDB/PSCouchDB.psd1 b/PSCouchDB/PSCouchDB.psd1 index ff0a1cc..4a5a95b 100755 --- a/PSCouchDB/PSCouchDB.psd1 +++ b/PSCouchDB/PSCouchDB.psd1 @@ -144,6 +144,7 @@ "Set-CouchDBRevisionLimit", "Set-CouchDBSession", "Set-CouchDBProxy", + "Set-CouchDBMaintenanceMode", "Grant-CouchDBDatabasePermission", "Revoke-CouchDBDatabasePermission", "Request-CouchDBReplication", @@ -290,7 +291,8 @@ "rmdoc", "rmuser", "rmadmin", - "cdsa" + "cdsa", + "cdbmaint" ) # DSC resources to export from this module diff --git a/PSCouchDB/alias/CouchDBalias.ps1 b/PSCouchDB/alias/CouchDBalias.ps1 index eb9d67c..d65c567 100644 --- a/PSCouchDB/alias/CouchDBalias.ps1 +++ b/PSCouchDB/alias/CouchDBalias.ps1 @@ -56,6 +56,7 @@ New-Alias -Name "scrpl" -Value Set-CouchDBReplication -Option ReadOnly New-Alias -Name "scrl" -Value Set-CouchDBRevisionLimit -Option ReadOnly New-Alias -Name "scs" -Value Set-CouchDBSession -Option ReadOnly New-Alias -Name "sps" -Value Set-CouchDBProxy -Option ReadOnly +New-Alias -Name "cdbmaint" -Value Set-CouchDBMaintenanceMode -Option ReadOnly New-Alias -Name "gcdbp" -Value Grant-CouchDBDatabasePermission -Option ReadOnly New-Alias -Name "rcdbp" -Value Revoke-CouchDBDatabasePermission -Option ReadOnly New-Alias -Name "rcdbr" -Value Request-CouchDBReplication -Option ReadOnly diff --git a/PSCouchDB/functions/CouchDBserver.ps1 b/PSCouchDB/functions/CouchDBserver.ps1 index f7e3b0b..679bebd 100644 --- a/PSCouchDB/functions/CouchDBserver.ps1 +++ b/PSCouchDB/functions/CouchDBserver.ps1 @@ -1046,3 +1046,68 @@ function Remove-CouchDBProxy () { $Global:PSDefaultParameterValues["*CouchDB*:ProxyCredential"] = $null $Global:PSDefaultParameterValues["*CouchDB*:ProxyServer"] = $null } + +function Set-CouchDBMaintenanceMode () { + <# + .SYNOPSIS + Enable/Disable maintenance mode. + .DESCRIPTION + Enable/Disable maintenance mode. + .NOTES + CouchDB API: + GET /_db_updates + .PARAMETER Server + The CouchDB server name. Default is localhost. + .PARAMETER Port + The CouchDB server port. Default is 5984. + .PARAMETER Node + The CouchDB node of cluster. Default is couchdb@localhost. + .PARAMETER Maintenance + Maintenance on/off. Default is $true. + .PARAMETER Authorization + The CouchDB authorization form; user and password. + Authorization format like this: user:password + ATTENTION: if the password is not specified, it will be prompted. + .PARAMETER Ssl + Set ssl connection on CouchDB server. + This modify protocol to https and port to 6984. + .PARAMETER ProxyServer + Proxy server through which all non-local calls pass. + Ex. ... -ProxyServer 'http://myproxy.local:8080' ... + .PARAMETER ProxyCredential + Proxy server credential. It must be specified with a PSCredential object. + .EXAMPLE + Set-CouchDBMaintenanceMode -Authorization admin:password + Enable maintenance mode. + .EXAMPLE + Set-CouchDBMaintenanceMode -Maintenance:$false -Authorization admin:password + Disable maintenance mode. + .LINK + https://pscouchdb.readthedocs.io/en/latest/server.html#server-operation + #> + [CmdletBinding()] + param( + [Parameter(ValueFromPipeline = $true)] + [string] $Server, + [int] $Port, + [string] $Node, + [bool] $Maintenance = $true, + $Authorization, + [switch] $Ssl, + [string] $ProxyServer, + [pscredential] $ProxyCredential + ) + # Compose doc + if (-not($Node)) { + if ((Get-CouchDBNode -Server $Server -Port $Port -Authorization $Authorization -Ssl:$Ssl -ProxyServer $ProxyServer -ProxyCredential $ProxyCredential).name) { + $Node = (Get-CouchDBNode -Server $Server -Port $Port -Authorization $Authorization -Ssl:$Ssl -ProxyServer $ProxyServer -ProxyCredential $ProxyCredential).name + } else { + $Node = Read-Host "Enter the node name (ex. couchdb@localhost)" + } + } + $Database = "_node" + $Document = "$Node/_config/couchdb/maintenance_mode" + $Data = $Maintenance | ConvertTo-Json + # Request + Send-CouchDBRequest -Server $Server -Port $Port -Method "PUT" -Database $Database -Document $Document -Data $Data -Authorization $Authorization -Ssl:$Ssl -ProxyServer $ProxyServer -ProxyCredential $ProxyCredential +} \ No newline at end of file diff --git a/docs/build/doctrees/cmdlets.doctree b/docs/build/doctrees/cmdlets.doctree index f570c44577b567dbacc395d5dedd56d77c6136dd..017be801ea0ac6f84841a412bf7e9f9b7d2d2cfb 100644 GIT binary patch delta 3426 zcmbuCYgAO%702Bdm;q;GKnC!^Yt%Z(FfcqcT5Wtp(FBf2Ihv3diAGvumULWBFjx#LCML!Q@sXNlSxiie3nEIi8d1`7?&S{lLq7G(UiaMd z+k5}_x%-@Z@9RhX4juRN+u*mWwqL#9awqI*x`?Q_xa_obL}g^sCHGIAFel;joU z7A(xmC|rc#>X0#Ae*OA6voVdX=9mCUQ&TwPXOS{>`~b7&kxop{@k~*243IiV`n2zc>X$ zTspi_oPczfj8*LpagSM+BjNWey;x_7g$`n<%Z9L3-dGK;J%s!H zCJ9YS(Bs>RiT-EL83Zr5&vXtf(1`jJ>>VYldUpUR90dEk-!CPmS$t8^|&< z`Ccon8HndCI;6u(Qw;JrsLp_8hZLs}cX?f` zgw=;tr`t0Eaf|sQ?ob#pOg@x^@gJ!1TMzLyUUQ@uWlcshpp$7)`Bx3@ABkiSj5Gkz zA4K5kde!C6AG8p%+-mf1jwIrmTL)u(9Df9;JKsHV#joJ>XFbnkal5mXA)dpGRt3$?$%DeC6C`#+3>D-YQ)s8B$V9q zGT(P`X3j&E8FDX9|GnOObcHfg8igY7o&mw#v$T4tZ^6F1=ki7E<1|g6e3P$$5uS%} zNbJ#ZkE%zC*NZ(~~ONms+OhII({VZ4_i#EQmR!@yTeeOpei3z0x6XZ!&A4pjeZ!P}5WWx+J zI^gdEX6r;W#9L?S_&{X!Lk!v%tdIRy-X0d^pLU}b82Z%28>ic;7GQ=hi;Q8ZCv^&|Td7MLi3 zO*E69)tM-kEjRNVSx@A6dKfMDWp(j9NA?prg3a7*yp`v8&P=0NiIuzMJmGfTOrQC( zj}p1tyeHiJtz6Jd8+S{y@&FrceQWWZm97%ArSwS~YNI4}CWXUuY!uJ*seN_av57iv zj_HFdQ)s*tWngDhXd=b1>zVv1pPb}R5z1xIGQBqc34Lo)sZiotI5$mGC{M7_PtglB zn(cauUJaOQkegt(L2iOSqWd(M}9lM;|E+@9j zN$qk%yPV7}C$h^)>~aFT9Ng}5#E74fKREPqJ&t)wF>4&R9IwfhIPNNC+!s~JWfc01 m=a+IF;y*yCLwtfNb%?J!r4Dh>D|LwNCfDK2_FR}tY4l$SmG|xd delta 3158 zcmY+Gdr(x@9moA$V0U4c7@hK`|DkY#TFUujDE%_W!#=|^qT`N%_{}X_RAz_LU>z}SE9$1|{g(jmSdj@W1 zWe8Rr)7E(-FWV6*8yav-sf6!(x!nv!cB+VpzKa^Q$jb@E;cPX|=ft8tTZ&Nd%EO$x zF++e`j)eAadV}(z->k3pF@b6og5;GRVr#-m``+w zG!_|0@z%ZBgfEIkytpJ&h$g9c<-Tyo@2$n(w-(>=|HUU^)4rL`{~inMJr8aOrJrm< zp4f!U6HD%pgrw~cBKof+Bzd%#*LeFtoV}ZB+&El8JRa@KAPL4PEX1b=QpFaB(n=#~ zI<}U^A`w<%yxFI$oX`&$ab=OnE!7~I1>;Pq74k6OVOIpy9<)NUF@vcQQ4tIylYzfg z{LT(#hphl#$wxymsX~LKV;-n!b3tlFy5hHE66PLb1izyxidAC*@_O9aQv+X_i%+-< z?J89FOt7{^|Jz4L1)1sOJwnHEx!jqRp~6cQR#rv=CuC;0azEkzDVb^T*J6HUFeaW3 zKvCr=gyBIAD$d-IHs8aa#qUSh{e>(b@hvU-&U!<8T8-6jxgfC06EjZBYL8b%2-tpB zgbOZtBf2J%*5kdJcuc9{h`Fog9O33UIe%|$EHO-~OF&_bT;f-CZG=D7%1EC%4t{lN zL|)Kgah(h`U8p3Km}Tht#TfWsP~+9b2rRiEL#3AEgw+?VwanFMoNVjVn`z%AZ+Kgb z*2Q36`Q>+nsh8w;nm`3GU7e20jWXi;bt~a+lZ?E1Ee;=F6^|bsPF$5Cx9dZM2Y;6# zyqN1?b)1J)jjhBg_}-5I0< z?IN?LBTY!M9su8WggYKlOQ%&_r+0>hIw0lFVjg>p6eH+kXmM_TObnaHoS zsvbQa{vdM;eo7D!&?9l;4du#Q;orv(xK4MR?NP(EF9hH9$n=T6Z~@zTZS>RmTC5$= zpuESOvhdyj-!griHFpj4@GaAC5Tls2Ra#j-sO(24(or7sR8t&_P)Q(P1eOC@x-VeG z5vBO`L}0s}D3!|DbvH^A_}K6(lTCA{sg8Bd(yBY}EUmg~u{E~p;@Dr^>1}Fc|8b{T z)Wiyi!l{9!sVGVrFAhVsGx+<$a?*p^?5Mr0iINowQa{_DNS^4ebz%O#b!3(ao?DL@jf#rDf600Ro=Hg4!IW*sw=CDK`$`D2~J@ch= z_U!yb8+kB@gHzayAP)Y)m(mr`dD281Ev@ zew>Rm`_W=+Z1%G(+h)-gA7PFQ_M6{UtQX6SW=ZL^kg_Z#>9j?le2e2UI%(&+oO_y< zi6&AsVXS^R`Q;7r*Rg3pG%5V$VwxwKcG0wnri`C(rURlm!&jZ@FQN$&z5PY=u4oo< zv$5DQYvm`aa<;5rwW0L0(g@@G29uc1Af+-G`wgb&BsSODiB`;Mkn$Pwq+|vukwHpg zkP;ZA;D(LHKr!4>qeiOSm}v^*VU4-QUgI89KM!eqZu*$VG!5}@tBiGGQ<5P*{H-#? eXQow#_-3=p5D#xILzE!yC`pGY+VVJ)Qs{sCc(rE$ diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 82e72ef445e5663f9d21d1bbaef2f2f9c6d5debe..4875b7a6b4f8ab2144321f88dc2dc7caf40d19ab 100644 GIT binary patch literal 120174 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 F0syG1@Q(lh delta 64 zcmV-G0Kfmn`~lAM0R?~smBV?l1#NM&&~;-10avp$c*g?] [[-Port] ] [-JobId] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] +**Set-CouchDBMaintenanceMode** + +.. code-block:: powershell + + Set-CouchDBMaintenanceMode [[-Server] ] [[-Port] ] [[-Node] ] [[-Maintenance] ] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] + Replication *********** diff --git a/docs/build/html/_sources/server.rst.txt b/docs/build/html/_sources/server.rst.txt index 674729d..06ab210 100644 --- a/docs/build/html/_sources/server.rst.txt +++ b/docs/build/html/_sources/server.rst.txt @@ -309,4 +309,19 @@ Request, configure, or stop, a replication operation. using module PSCouchDB $rep = New-Object PSCouchDBReplication -ArgumentList 'test','test_dump' $rep.AddDocIds(@("Hitchhikers","Hitchhikers_Guide")) - Request-CouchDBReplication -Data $rep -Authorization "admin:password" \ No newline at end of file + Request-CouchDBReplication -Data $rep -Authorization "admin:password" + +Enable/Disable Maintenance +__________________________ + +Enable maintenance mode. + +.. code-block:: powershell + + Set-CouchDBMaintenanceMode -Authorization "admin:password" + +Disable maintenance mode. + +.. code-block:: powershell + + Set-CouchDBMaintenanceMode -Maintenance $false -Authorization "admin:password" \ No newline at end of file diff --git a/docs/build/html/cmdlets.html b/docs/build/html/cmdlets.html index e56adc5..e3a6bc4 100644 --- a/docs/build/html/cmdlets.html +++ b/docs/build/html/cmdlets.html @@ -345,6 +345,10 @@

Server
Remove-CouchDBReshards [[-Server] <String>] [[-Port] <Int32>] [-JobId] <String> [[-Authorization] <Object>] [-Ssl] [[-ProxyServer] <String>] [[-ProxyCredential] <PSCredential>] [<CommonParameters>]
 
+

Set-CouchDBMaintenanceMode

+
Set-CouchDBMaintenanceMode [[-Server] <String>] [[-Port] <Int32>] [[-Node] <String>] [[-Maintenance] <Boolean>] [[-Authorization] <Object>] [-Ssl] [[-ProxyServer] <String>] [[-ProxyCredential] <PSCredential>] [<CommonParameters>]
+
+

Replication

diff --git a/docs/build/html/index.html b/docs/build/html/index.html index 169f619..4eda863 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -227,6 +227,7 @@

Welcome to PSCouchDB’s documentation!Modify replica
  • Remove replica
  • Replication request
  • +
  • Enable/Disable Maintenance
  • Authentication
  • diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index 7b86c00..4c219f6 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["auth","classes","cmdlets","config","databases","ddoc","documents","index","intro","permission","server","support","uses"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["auth.rst","classes.rst","cmdlets.rst","config.rst","databases.rst","ddoc.rst","documents.rst","index.rst","intro.rst","permission.rst","server.rst","support.rst","uses.rst"],objects:{},objnames:{},objtypes:{},terms:{"00000000":4,"001":10,"100":[6,12],"120":1,"121":1,"122":1,"127":[1,3],"1500":4,"1990":11,"1fffffff":4,"1gb":12,"2019_00_01_00":4,"2c903913030efb4d711db085b1f44107":[1,6],"300":1,"399796e5ce019e04311637e8a8a0f402":6,"400":4,"404":6,"412":4,"443":[1,3],"4705a219cdcca7c72aac4f623f5c46a8":9,"5984":[1,5],"5xx":10,"60000":10,"638b90b9acf73cbb113afdfdba458bec80da6a6be23599019fb7b051cedfcc93":10,"6984":[1,3],"7051cbe5c8faecd085a3fa619e6e6337":[4,6],"7bf1766d9a5f3e4a60b400e98d62f523":6,"80000000":10,"8080":[1,10],"825cb35de44c433bfb2df415563a19d":4,"85a961d0d9b235b7b4f07baed1a38fda":5,"88972423aac3fe5d474dd17d3ee18a8b":5,"9a68ee74a8276c7f11146245ba43676f":6,"boolean":[2,6],"break":9,"byte":1,"case":6,"class":[6,7,9,12],"default":[0,1,2,3,4,5,6,10],"export":[2,7],"function":[6,9,12],"import":[2,7,8,11,12],"int":[1,12],"new":[1,2,5,6,8,9,10,12],"null":[1,5,6,12],"return":[1,3,4,5,6,9,10],"throw":[5,9],"true":[0,1,2,5,6,10,12],"try":5,"var":8,"void":1,AND:6,Age:12,And:[0,4,6,9,10],But:0,ERE:1,For:[0,3,4,6,8,10,11],IDs:4,Ids:4,NOT:6,One:[1,4],The:[1,3,4,5,6,9,10,11],There:6,These:4,Use:1,Used:6,With:[1,6,12],_all_db:4,_all_doc:6,_approx_count_distinct:1,_attach:1,_chang:4,_cluster_setup:8,_count:1,_delet:6,_design:5,_id:[1,6,9,12],_rev:[1,6,9,12],_stat:1,_sum:1,_view:5,about:[4,6,8,10,12],about_pscouchdb:8,about_sign:8,acatt:2,accept:9,access:[1,5,7,10],acnod:2,across:6,act:6,action:6,activ:[3,11,12],activedirectori:12,adatt:2,adcomput:12,add:[2,5,6,7,12],addadmin:1,addattach:1,addauthor:1,adddocid:[1,10],adddocu:[1,6],added:[1,5],addfield:[1,6,12],addindexi:1,addit:6,addition:6,addlogicaloper:[1,12],addmapfunct:1,addmemb:[1,9],addreducefunct:1,address:1,addselector:[1,6,12],addselectoroper:[1,6,12],addsortasc:1,addsortdesc:1,addsourceauthent:1,addtargetauthent:1,addvalid:1,addvi:1,addview:1,admin:[0,3,4,5,6,7,10,12],administr:[8,9],adopt:11,advanc:7,advantag:12,after:10,again:[1,6],against:6,age:[1,12],agent:10,alert:10,algorithm:6,alia:10,alias:7,alist:4,aliv:10,all:[4,5,6,8,9,10,11,12],allcomput:12,alldatabas:2,alldocu:2,allmatch:6,allow:[0,1,5,6,8],along:10,alreadi:4,also:[1,5,6],alwai:[5,6],analyz:10,ani:[4,6,10,12],answer:[1,6,11],anyon:11,api:[3,6,8],appeal:11,append:[1,10],appli:[1,6],applic:[4,5,10,12],appropri:1,argument:[1,6],argumentlist:[1,2,6,9,10,12],arrai:[1,2,6],arthur:[1,6],asc:6,ascend:[1,6],asjob:[2,6],ask:6,asplaintext:[0,1,9],assign:1,associ:[1,6,11],attach:[2,4,7],attachmentsinfo:[2,6],attachmentssinc:[2,6],attent:6,auth:1,authent:7,author:[0,2,3,4,5,6,9,10,12],autom:[1,12],automat:10,autos:8,avail:[5,6],avala:6,back:6,background:[4,6],backup:4,base:[5,6,10],basic:[1,6],batch:6,batchmod:[2,6],bdoc:[1,6],been:[5,6],befor:[1,4,5,6,8],begin:10,being:[1,5,6],below:[2,10,11,12],between:6,bindaddress:[2,3],bindport:2,black:11,bodi:6,bookmark:2,bool:1,boost:6,born:11,both:6,box:4,bre:1,browser:5,bug:11,build:[5,12],buildmapfunct:1,builmapfunct:1,bulk:7,busi:12,by_planet:5,by_titl:5,c2cefa18494e47182a125b11eccecd13:10,call:[6,8,10],can:[0,1,3,4,5,6,9,11,12],cannot:[4,6],categorynumb:12,ccdb:2,ccdd:2,ccdoc:2,ccview:2,cdb1:1,cdblog:2,certain:1,cfae778df80635ad15daa09e0264a988:5,cfae968df80635ad15a9709e0264a988:5,cfae968df80635ad15d5709e0264a988:5,chang:[1,3,6,7,10],check:[6,9,10,12],checkpoint:1,ciminst:12,clear:[0,2,6,7],clearcach:1,cli:7,clone:8,close:10,cluster:[7,10],cmdlet:[3,5,6,7,8,9,10],code:[10,12],color:10,com:[1,8],combin:6,come:11,command:8,commit:7,common:4,commonparamet:2,compact:[5,7],compani:11,compat:[1,6],complet:[6,10],complex:[1,6,12],compress:[1,2,4,6,7],comput:12,computercpu:12,computerdisk:12,computerhw:12,computerinventori:12,computernam:12,condit:[1,6],configur:[1,7,9,10],confirm:[2,8],conflict:[2,5,6],connect:[2,7,10,12],consid:6,construct:1,contain:[1,4,5,6,9],content:[5,6,7],content_typ:1,continu:[2,8,10],contribut:7,convertto:[0,1,9,12],cooki:0,copi:[2,7,8,10],core:[1,6,8],correspond:4,couchdb:[0,1,3,4,5,6,7,8,9,10,12],couchdbactivetask:[2,10],couchdbadmin:[2,9],couchdbanalyz:[2,10],couchdbattach:[2,6],couchdbbulkdocu:[2,6],couchdbcacheprefer:2,couchdbclust:[2,3],couchdbclustersetup:[2,10],couchdbconfigur:[2,3,10],couchdbdatabas:[0,2,4,9,10,12],couchdbdatabasechang:[2,4,10],couchdbdatabasedesigndocu:[2,5],couchdbdatabaseinfo:[2,10],couchdbdatabasepermiss:[2,9],couchdbdatabasepurgedlimit:[2,4],couchdbdatabasesecur:[2,9],couchdbdatabaseshard:[2,4],couchdbdatabaseupd:[2,10],couchdbdesigndocu:[1,2,5,9],couchdbdesigndocumentattach:[2,5],couchdbdocu:[1,2,5,6,12],couchdbfullcommit:[2,4,6],couchdbfulltext:[2,6],couchdbhelp:[2,8],couchdbindex:[1,2,4],couchdblog:[2,10],couchdbmissingrevis:[2,4,6],couchdbnod:[2,3,10],couchdbobject:[1,2],couchdbproxi:[2,10],couchdbrepl:[2,8,10],couchdbreplicationdocu:[2,10],couchdbreplicationschedul:[2,10],couchdbrequest:[2,10],couchdbreshard:[2,10],couchdbrevisiondiffer:[2,4],couchdbrevisionlimit:[2,4],couchdbsavecredentialprefer:[0,2],couchdbserv:[2,10],couchdbsess:[0,2],couchdbstatist:[2,10],couchdbus:[2,9],couchdbuuid:[2,10],couchdbview:[2,4],count:[2,10,12],cover:3,cpdoc:2,crash:10,creat:[7,12],createtarget:1,creation:10,credenti:[0,1,2,9,10],credoject:1,creq:[2,10],criteria:[6,12],criterion:1,critic:10,current:[0,4,8],currentus:8,daemon:1,dai:11,dare:11,data:[2,5,6,9,10,12],databas:[0,5,6,7,8,10,12],database_t:4,date:12,db1:1,db2:1,dbname:12,ddoc:[1,4,5,9],debug:10,declar:4,defin:[1,5,6,12],definit:5,delet:[1,4,5,7,9],deleted_conflict:6,deletedconflict:[2,6],dent:6,deploi:3,deprec:5,depth:[1,12],desc:6,descend:[1,2,4,5,6],describ:6,descript:[4,5,6,10],design:[4,6,7,9],designdoc:[2,4,5],destin:[2,4,6,10],detail:[6,10],deviceid:12,differ:[1,3,5,9],direct:6,directori:12,disabl:1,disablecach:1,disableupd:1,disconnect:[2,4],diseas:11,disk:[4,5,6],displai:[8,9,10],divisor:6,dnshostnam:12,doc120:1,doc121:1,doc122:1,doc1:1,doc2:1,doc:[1,5,12],doc_id:1,document:[4,8,9,10],doe:[0,6],doesn:6,dollar:6,don:9,donat:7,download:8,drivetyp:12,dure:9,e_s_t_a_m_p:4,each:[3,4,5,6,10],easi:12,eccl:2,ecdb:2,edg:10,edit:[9,12],effect:9,either:3,element:[2,5,6],elemmatch:6,els:[9,12],emerg:10,emit:[1,5],emitdoc:1,empti:[1,10],enabl:[1,2,3,6,8,9],enablecach:1,encod:6,end:[5,6],endkei:[2,4,5,6],endkeydocu:[2,5,6],endpoint:4,engin:1,english:10,enough:1,ensur:6,ensuredatabaseexist:2,enter:1,entir:[1,3,4,10],entri:10,entrytyp:12,equal:[1,6],equemit:1,equival:6,err:[2,10],error:[5,10],erroract:12,etc:10,event:10,eventid:12,eventlog:12,eventsourc:10,everi:[1,6,11],everyth:[6,12],exact:1,exampl:[3,6,10,12],excludeid:2,execut:[1,8],execution_stat:1,executionpolici:8,executionstat:[2,6],exist:[4,6,12],experi:11,explain:2,exportdb:2,express:[1,6,12],extend:[3,12],extern:10,extract:5,f6d66c4d70da66cded6bea889468eb14:[1,6],fail:10,fals:[0,1,2,4,5,6,10],favorit:5,fcdoc:2,feed:[2,10],femal:11,few:12,ffffffff:10,field1:1,field2:1,field3:1,field:[2,4,6,10,12],file:[4,5,6,10,12],filenam:1,filter:[1,2,12],find:[1,2,4,5,7,11,12],finddoc:2,first:[1,3,6,9,10,12],firstnam:6,folder:10,follow:[1,2,4,5,6,8,10],forbidden:[5,9],forc:[0,1,2,4,6,9],ford:6,foreach:12,fork:11,form:9,format:[0,3,4,6,8,9,10],found:[6,8,11],foundat:11,fqdn:1,from:[1,4,5,6,8,9,10,11,12],fromjson:1,full:[5,6,8,10],futur:11,gcadm:2,gcatt:2,gcbdoc:2,gcbpl:2,gcc:2,gcconf:2,gcdatt:2,gcdb:2,gcdbc:2,gcdbp:2,gcdbr:2,gcdbsh:2,gcdbu:2,gcddd:2,gcddoc:2,gcdoc:2,gcidx:2,gcmr:2,gcnode:2,gcrd:2,gcrl:2,gcrpdoc:2,gcrpl:2,gcsi:2,gctsk:2,gcusr:2,gener:6,get:[0,2,7,8,9,12],getadmin:1,getdata:1,getdocu:1,gethashcod:1,gethead:1,getjsonview:1,getmemb:1,getnativequeri:[1,6,12],getrawdata:1,getstatu:1,gettyp:[1,12],geturi:1,getview:1,github:8,give:12,given:[4,6,8],glanc:10,global:10,gplv3:11,grant:[2,9],greater:6,group:[2,6],group_level:6,grouplevel:[2,6],gte:6,guadrini:12,guid:6,hand:4,hardwar:12,has:[1,5,6,10,12],hashtabl:[1,6],have:[1,4,6,10,11],headlin:10,health:10,heart:[1,6],heartbeat:[2,10],help:[3,8,10],helpc:2,here:5,high:8,higher:6,himself:11,histor:[4,10],histori:2,hitchhik:[4,6,10],hitchhikers_guid:10,hour:12,howev:5,http:[1,5,8,10],human:11,hw_inventori:12,icdb:2,idea:12,identifi:[6,10],ids:1,idx:4,ignor:[5,6],impli:6,implicit:[1,6],importdb:2,improv:11,includ:[5,6,10],include_doc:5,includedocu:[2,5,6],inclusiveend:[2,5,6],increas:5,increment:[5,10],indefinit:10,index:[1,5,7,12],index_planet:6,indexof:9,indic:[5,6],individu:[3,4],info:[2,6,7,10,12],inform:[4,5,6,10],insert:1,insid:[0,9],instal:[7,9],instanc:[3,4,5,10,12],instanceid:12,instead:[1,6,7,10],instruct:6,int32:2,integ:6,interest:[6,10],interfac:[3,4,5],intern:4,interpret:1,interv:1,introduct:7,invalid:[1,4,5],invok:5,involv:10,isn:5,issu:7,item:6,its:[1,4,6,10],itself:5,javascript:5,job:[1,2,6,10],jobid:[2,10],jobnam:2,json:[4,6,10,12],just:[1,4,12],keep:[6,10],kei:[1,2,3,4,5,6,10],kept:6,keyword:5,know:[6,12],label:12,languag:[4,5],last:[1,6,10],latest:[2,5,6,8],lazi:6,lead:10,leaf:6,least:6,leav:6,lenghth:5,length:6,less:6,let:[0,8,9,10],level:[2,4,6],librari:6,licens:11,life:6,like:[1,6,10],limit:[2,5,7],line:[1,10,12],link:11,list:[2,3,4,5,10],listen:11,local:[1,2,3,4,7,8,10,12],localhost:[1,5],localsequ:[2,6],log:[1,7],logic:9,loglist:12,lognam:12,longer:4,longpol:10,look:[8,10],loop:12,lot:11,love:11,lte:6,lucen:10,machinenam:12,made:[4,9],magrathea:[1,5,6],mai:[1,5,10],main:[5,11,12],male:11,manag:[1,5],mandatori:12,mango:[4,6,12],mani:6,manual:[1,3],manufactur:12,map:5,mark:6,match:[1,5,6],matteo:12,matteoguadrini:8,matter:6,maxemit:1,maximum:[1,4,6],mcst:2,mean:3,measur:[2,10],member1:1,member2:1,member:7,member_us:9,memori:6,messag:[10,12],metadata:[2,6],method:[2,6],millisecond:[1,10],mind:11,minemit:1,minimum:1,ministri:11,minut:12,miscellan:6,mkadmin:2,mkdb:2,mkdoc:2,mkuser:2,mod:6,mode:6,model:12,modifi:[0,7,9],modul:[1,2,6,8,9,10,11,12],more:[1,3,5,6,10,12],most:[4,10],much:[6,12],multipl:6,must:[1,6,9],my_bookmark:6,mybookmark:1,mydesigndoc:[1,5,9],mydomain:1,myproxi:[1,10],myview:1,name:[1,2,4,5,6,8,10,12],nativ:6,natur:9,navig:5,ncadm:2,ncbd:2,ncdb:2,ncddoc:2,ncdoc:2,ncidx:2,ncrpl:2,ncusr:2,ncuuid:2,need:[6,9,10],neg:6,new_password:9,newdoc:[1,5,9],newvalu:1,next:6,nin:6,noconflict:2,node:[2,4,7,10],nodecount:2,non:[6,11],none:6,nor:6,normal:[6,10],noth:3,notic:10,noupdat:[2,6],now:[0,1,5,9,10],number:[4,5,6,10],numberofcor:12,numberoflogicalprocessor:12,numberofprocessor:12,obj:1,object:[2,3,6,7,9,10,12],obtain:[4,6],offer:6,offset:6,old:[3,5,9],olddoc:[1,5,9],omit:6,onc:0,one:[3,5,6,8,9,10,11,12],onli:[0,1,4,5,6,7,8,10,11],oop:7,opaqu:6,open:[10,11],openrevis:[2,6],oper:[2,5,7,12],option:[1,6,10],order:[4,5,6],organ:[3,11],other:[4,5,6,10,11],other_admin:9,otherwis:[6,10],our:1,out:[4,6,12],outfil:[2,5,6],overrid:10,overwrit:6,overwritten:6,own:10,page:6,pai:6,pair:6,param1:1,param:[0,1,2,12],paramat:1,paramet:[0,4,5,6,9,10,12],part:[6,10],parti:7,particular:[6,10],partit:[2,7],pass:[1,6],passion:11,passwd:1,password:[0,1,2,3,4,5,6,7,10,12],past:12,path:[1,2,4,8,10],patient:11,pattern:[2,6,8],pcre:6,peopl:11,per:10,percentcomplet:12,perform:[4,6],period:10,perl:6,perman:[4,6],permiss:[1,7],permit:1,person:12,persondocu:12,planet:[1,5,6],planet_view:5,point:9,poor:11,port:[2,3],posit:6,possibl:[1,4,5,6],post:1,potenti:12,powershel:[0,1,8,11],powershellgalleri:8,practic:4,prefect:6,prefer:[0,7],prefix:6,present:4,prevent:[1,5],previou:9,previous:[1,6],primari:[1,4],prior:6,privileg:10,process:[4,10],product:5,profil:12,profit:11,programfil:8,progress:12,project:11,prompt:0,properti:12,protect:[0,9],protocol:1,provid:[3,4,5,6],proxi:10,proxycredenti:2,proxyserv:2,proxyuri:1,ps1:12,pscouchdb:[0,6,8,9,10,12],pscouchdbattach:7,pscouchdbbulkdocu:[6,7],pscouchdbdesigndoc:[7,9],pscouchdbdocu:[7,12],pscouchdbqueri:[6,7,12],pscouchdbrepl:[7,10],pscouchdbrequest:7,pscouchdbsecur:[7,9],pscouchdbview:7,pscredenti:[0,1,2,9],psobject:1,pssession:12,purg:7,purged_infos_limit:4,purpos:[6,9,11],put:[1,12],pwd:4,queri:[3,4,7,12],question:6,quiet:12,rang:[2,4,10],rare:11,rather:4,rcadm:2,rcatt:2,rcdb:2,rcdbp:2,rcdbr:2,rcddoc:2,rcdoc:2,rcidx:2,rcnode:2,rcrpl:2,rcs:2,rcsrv:2,rcusr:2,rdatt:2,rdblog:2,reach:[4,5,6],read:[0,1,2,7],read_onli:9,readquorum:[2,6],real:[7,11],reason:[0,5],receiv:[1,5,6],recent:4,recogn:11,record:[5,6],red:11,reduc:[2,5,6],reduct:6,refer:6,reflect:[5,6,12],regardless:6,regex:[6,12],regular:[1,6],religi:11,remaind:6,remot:[3,4],remote_srv:4,remoteauthor:[2,4],remotenod:2,remotepassword:2,remoteport:2,remoteserv:[2,4],remotesign:8,remoteus:2,remov:[0,2,6,7,12],removeadminnam:1,removeadminrol:1,removeallattach:1,removeattach:1,removedocu:1,removeel:1,removefield:1,removeindexi:1,removemapfunct:1,removemembernam:1,removememberrol:1,removeproxi:1,removereducefunct:1,removerevis:[2,4],removeselector:1,removesort:1,removeview:1,rep:[1,10],repdb:1,repeat:4,replac:[2,6,12],replaceattach:1,replacemapfunct:1,replacementstr:12,replacereducefunct:1,replaceselector:1,replaceview:1,replic:[6,7,8],replica:[4,6,7],replicatordatabas:2,replicatordocu:2,report:[1,10],repres:12,represent:1,req:[1,5],request:[2,4,5,6,7,9],requestasjob:1,requir:[3,4,6,10],research:11,reset:[1,7],reshard:10,resourc:4,respect:11,respond:[6,11],respons:[4,5,6,10],restart:[2,10],restmethod:5,restor:[1,4],result:[1,4,5,6,10],retain:6,retri:5,retriev:[5,6],rev:6,revis:[2,5,7,9,12],revok:[2,7],revs_info:6,revs_limit:4,rich:11,rmadmin:2,rmdb:2,rmdoc:2,rmuser:2,role:[1,2,9],root:1,rotat:[2,10],row:6,run:[1,3,4,6,8,9,10],same:[3,4,5,6,10],sampl:10,save:[0,4,5,6,10],savedata:1,scadm:2,scconf:2,scd:2,scda:2,scdbpl:2,scdbr:2,scddoc:2,scdoc:2,scenario:12,scft:2,schedul:12,scientif:11,scope:8,script:[7,8],scrl:2,scrpl:2,scs:2,scusr:2,search:[1,2,5,8,10],searchcriteria:12,sec:[1,9],secobj:[1,5,9],second:[6,10,12],secstringpassword:1,section:[3,6,9],secur:[0,12],securestr:[0,1,2,9],see:[1,3,6,8,9,10],select:[3,5,9,12],selector:[2,12],semplifi:8,send:[1,2,10],sent:10,sequenc:[1,5,6,10],serv:11,server:[3,4,7,9],session:[0,2,8,10,12],set:[0,2,3,5,6,7,8,9,10,12],setbookmark:1,setcancel:1,setcheckpointinterv:1,setcontinu:[1,10],setdata:1,setdatabas:1,setdelet:1,setdocu:1,setdocumentid:1,setel:[1,12],setexecutionstat:1,setfilt:1,setlimit:1,setmethod:1,setparamet:1,setport:1,setproxi:1,setqueryparam:1,setreadquorum:1,setrevis:[1,10],setselector:1,setserv:1,setsincesequ:1,setskip:1,setsourceproxi:1,setsourceserv:1,setsourcessl:1,setssl:1,setstabl:1,setstal:1,settargetproxi:1,settargetserv:1,settargetssl:1,setup:7,setvalidatefunct:[1,9],sever:[4,6],shard:[2,6,7],share:8,should:[5,6,8],show:[5,6,10],sign:[6,7],significantli:5,silentlycontinu:12,similar:5,simpl:[1,9],simpli:[3,4],sinc:[1,2,4,6,10],singl:[1,6,7,9,10],singlenod:[2,3],situat:[5,10],size:[6,12],sizegb:12,skip:[2,4,5],slartibartfast:[5,6],slower:6,socket:10,some:[1,11,12],sort:[2,4],sourc:[1,10,11,12],space:[5,6],special:6,specif:[5,10,12],specifi:[0,1,4,5,6,9,10],specul:11,speed:5,split:10,sqlite:5,src:2,ssl:[2,3],stabl:2,stai:10,stale:2,star:11,start:[4,5,6,7,9,10],startkei:[2,4,5,6],startkeydocu:[2,5,6],startup:10,state:[2,10],statereason:[2,10],statist:[1,10],statu:[2,10,12],step:[3,12],stop:[4,5,6,10],storag:0,store:[0,1,4,5,6,12],str:1,strin:1,string:[0,1,2,5,6,9,10,12],structur:[3,6],stub:6,subfield:6,subset:4,suffer:11,summari:6,suppli:4,support:[1,6,7],surnam:[1,4,12],sync:2,synchron:4,syntax:6,system32:8,system:[1,2,5,10,12],tabl:[1,4,5,6,8,10],tail:[2,10],take:[6,10,12],target:1,task:[8,10,12],tcdb:2,technolog:11,telethon:11,templat:12,termin:9,test1:[1,6,10],test2:[1,5,10],test:[0,1,2,5,6,7,9,10,12],test_01:4,test_copi:4,test_dump:10,test_restor:4,test_test_dump:10,test_valid:5,test_view:1,text:[2,10],than:[1,3,4,6],thank:11,thei:11,them:[1,11,12],thi:[0,1,3,4,5,6,8,9,10,11,12],thing:[3,10],third:12,those:4,three:12,through:[5,6,8],time:[1,3,4,5,6,10],timeout:[2,10],timestamp:12,titl:[5,12],todai:11,togeth:12,tojson:[1,12],token:[0,10],tolow:12,tombston:6,tool:[1,12],topmost:6,tostr:1,total:10,total_row:6,totalphysicalmemori:12,totalphysicalmemorygb:12,track:4,two:[1,3,6,9,10],txt:[1,5,6],type:[2,4,6,10,12],typenam:[1,2,6,9,12],ultim:6,unauthor:[1,5,9],undefin:6,under:[6,8,11],underli:5,uniqu:10,univers:[6,10,11],unix:8,unless:[5,6],unrestrict:8,until:[6,10],unus:5,updat:[2,3,5,10],update_aft:6,update_seq:[5,6],updatesequ:[2,5,6],uribuild:1,usag:5,use:[0,1,4,5,6,7,8,9,12],use_index:1,usecheckpoint:1,used:[1,5,6,9,10],useful:6,useindex:[2,6],usequeri:2,user:[0,1,6,7,8],userctx:[1,5,9],userid:[0,2,9],usernam:[1,12],userpassword:1,userprofil:8,uses:7,using:[1,6,7,9,10,12],usr:8,utf8:4,uuid:10,vacuum:5,valid:[6,9],validate_doc_upd:[1,5],validateset:12,validationfunct:[2,5],valu:[1,2,3,5,6,12],value1:1,variabl:2,variou:[3,6,12],veri:[5,6,12],verifi:[0,1,3,4,8],version:[1,7,8,9,10],view:[6,7,12],viewmapfunct:[2,5],viewnam:[2,5],viewreducefunct:2,vogspher:1,voi:1,volumenam:12,wai:[1,5,10],want:[1,6,8,9,11,12],warn:10,wcfc:2,were:[1,11],what:6,whatif:2,when:[4,5,6],where:6,whether:[5,6],which:[1,4,5,6,10],white:11,who:11,win32_computersystem:12,win32_logicaldisk:12,win32_processor:12,windir:8,window:8,windowslog:12,windowspowershel:8,within:[3,4,5,6],without:[0,1,5,6,9],work:[4,8,11],world:12,wrap:4,write:[2,6,7,12],written:6,wrong:[1,10],year:11,yellow:11,you:[1,4,5,6,7,9,11,12],your:[1,5,8,12],your_domain_control:12,yyyy_hh_mm_ss:12},titles:["Authentication","Classes","Preferences","Setup","Databases","Design documents","Documents","Welcome to PSCouchDB\u2019s documentation!","Introduction","Permission","Server operation","Support","Real uses"],titleterms:{"class":1,"export":4,"function":[1,5],"import":4,"new":4,Use:6,access:9,add:[1,3],admin:[1,9],alias:2,all:1,allmatch:1,attach:[1,5,6],authent:[0,1,2],author:1,background:1,bookmark:[1,6],build:1,bulk:[1,6],cancel:1,chang:4,clear:[4,10],cluster:3,cmdlet:2,code:1,commit:4,compact:4,compress:5,configur:[2,3],connect:4,content:1,continu:1,contribut:11,copi:[4,6],creat:[1,4,5,6,9,10],custom:[5,12],data:1,databas:[1,2,4,9],delet:6,design:[1,2,5],differ:4,document:[1,2,5,6,7,12],donat:11,element:[1,3],elemmatch:1,execut:6,executionstat:1,exist:1,explain:6,field:1,file:1,find:6,flag:1,format:1,get:[1,3,4,5,6,10],git:8,gte:1,header:1,help:2,histori:6,index:[4,6],indexi:1,info:4,instal:8,introduct:8,inventori:12,issu:11,json:1,level:10,limit:[1,4,6,9],list:6,local:6,log:[10,12],logic:[1,6],lte:1,machin:12,mango:1,map:1,member:[1,9],method:1,miss:[4,6],mod:1,modifi:[1,3,5,6,10],nativ:1,nin:1,node:3,nor:1,object:1,one:1,onli:9,oop:12,oper:[1,6,10],other:1,paramet:1,parti:9,partit:[4,6],password:9,permiss:[2,9],port:1,prefer:2,properti:1,proxi:1,pscouchdb:[1,7],pscouchdbattach:1,pscouchdbbulkdocu:1,pscouchdbdesigndoc:1,pscouchdbdocu:1,pscouchdbqueri:1,pscouchdbrepl:1,pscouchdbrequest:1,pscouchdbsecur:1,pscouchdbview:1,purg:[4,6],queri:[1,6],quorum:6,read:[4,6,9,10],readquorum:1,real:12,reduc:1,regex:1,remov:[1,3,4,5,9,10],replac:1,replic:[1,2,10],replica:[1,10],request:[1,10],reset:9,revis:[1,4,6],revok:9,script:12,search:6,secur:1,selector:[1,6],server:[1,2,10],set:[1,4],setup:3,shard:4,sign:8,simpl:12,singl:3,size:1,skip:[1,6],sort:[1,6],specif:6,ssl:1,stabl:[1,6],stale:[1,6],start:8,statist:6,statu:1,storag:12,support:11,sync:4,test:4,type:1,updat:[1,6],uri:1,user:9,uses:12,valid:[1,5],view:[1,4,5],welcom:7,work:1,write:[4,9]}}) \ No newline at end of file +Search.setIndex({docnames:["auth","classes","cmdlets","config","databases","ddoc","documents","index","intro","permission","server","support","uses"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["auth.rst","classes.rst","cmdlets.rst","config.rst","databases.rst","ddoc.rst","documents.rst","index.rst","intro.rst","permission.rst","server.rst","support.rst","uses.rst"],objects:{},objnames:{},objtypes:{},terms:{"00000000":4,"001":10,"100":[6,12],"120":1,"121":1,"122":1,"127":[1,3],"1500":4,"1990":11,"1fffffff":4,"1gb":12,"2019_00_01_00":4,"2c903913030efb4d711db085b1f44107":[1,6],"300":1,"399796e5ce019e04311637e8a8a0f402":6,"400":4,"404":6,"412":4,"443":[1,3],"4705a219cdcca7c72aac4f623f5c46a8":9,"5984":[1,5],"5xx":10,"60000":10,"638b90b9acf73cbb113afdfdba458bec80da6a6be23599019fb7b051cedfcc93":10,"6984":[1,3],"7051cbe5c8faecd085a3fa619e6e6337":[4,6],"7bf1766d9a5f3e4a60b400e98d62f523":6,"80000000":10,"8080":[1,10],"825cb35de44c433bfb2df415563a19d":4,"85a961d0d9b235b7b4f07baed1a38fda":5,"88972423aac3fe5d474dd17d3ee18a8b":5,"9a68ee74a8276c7f11146245ba43676f":6,"boolean":[2,6],"break":9,"byte":1,"case":6,"class":[6,7,9,12],"default":[0,1,2,3,4,5,6,10],"export":[2,7],"function":[6,9,12],"import":[2,7,8,11,12],"int":[1,12],"new":[1,2,5,6,8,9,10,12],"null":[1,5,6,12],"return":[1,3,4,5,6,9,10],"throw":[5,9],"true":[0,1,2,5,6,10,12],"try":5,"var":8,"void":1,AND:6,Age:12,And:[0,4,6,9,10],But:0,ERE:1,For:[0,3,4,6,8,10,11],IDs:4,Ids:4,NOT:6,One:[1,4],The:[1,3,4,5,6,9,10,11],There:6,These:4,Use:1,Used:6,With:[1,6,12],_all_db:4,_all_doc:6,_approx_count_distinct:1,_attach:1,_chang:4,_cluster_setup:8,_count:1,_delet:6,_design:5,_id:[1,6,9,12],_rev:[1,6,9,12],_stat:1,_sum:1,_view:5,about:[4,6,8,10,12],about_pscouchdb:8,about_sign:8,acatt:2,accept:9,access:[1,5,7,10],acnod:2,across:6,act:6,action:6,activ:[3,11,12],activedirectori:12,adatt:2,adcomput:12,add:[2,5,6,7,12],addadmin:1,addattach:1,addauthor:1,adddocid:[1,10],adddocu:[1,6],added:[1,5],addfield:[1,6,12],addindexi:1,addit:6,addition:6,addlogicaloper:[1,12],addmapfunct:1,addmemb:[1,9],addreducefunct:1,address:1,addselector:[1,6,12],addselectoroper:[1,6,12],addsortasc:1,addsortdesc:1,addsourceauthent:1,addtargetauthent:1,addvalid:1,addvi:1,addview:1,admin:[0,3,4,5,6,7,10,12],administr:[8,9],adopt:11,advanc:7,advantag:12,after:10,again:[1,6],against:6,age:[1,12],agent:10,alert:10,algorithm:6,alia:10,alias:7,alist:4,aliv:10,all:[4,5,6,8,9,10,11,12],allcomput:12,alldatabas:2,alldocu:2,allmatch:6,allow:[0,1,5,6,8],along:10,alreadi:4,also:[1,5,6],alwai:[5,6],analyz:10,ani:[4,6,10,12],answer:[1,6,11],anyon:11,api:[3,6,8],appeal:11,append:[1,10],appli:[1,6],applic:[4,5,10,12],appropri:1,argument:[1,6],argumentlist:[1,2,6,9,10,12],arrai:[1,2,6],arthur:[1,6],asc:6,ascend:[1,6],asjob:[2,6],ask:6,asplaintext:[0,1,9],assign:1,associ:[1,6,11],attach:[2,4,7],attachmentsinfo:[2,6],attachmentssinc:[2,6],attent:6,auth:1,authent:7,author:[0,2,3,4,5,6,9,10,12],autom:[1,12],automat:10,autos:8,avail:[5,6],avala:6,back:6,background:[4,6],backup:4,base:[5,6,10],basic:[1,6],batch:6,batchmod:[2,6],bdoc:[1,6],been:[5,6],befor:[1,4,5,6,8],begin:10,being:[1,5,6],below:[2,10,11,12],between:6,bindaddress:[2,3],bindport:2,black:11,bodi:6,bookmark:2,bool:1,boost:6,born:11,both:6,box:4,bre:1,browser:5,bug:11,build:[5,12],buildmapfunct:1,builmapfunct:1,bulk:7,busi:12,by_planet:5,by_titl:5,c2cefa18494e47182a125b11eccecd13:10,call:[6,8,10],can:[0,1,3,4,5,6,9,11,12],cannot:[4,6],categorynumb:12,ccdb:2,ccdd:2,ccdoc:2,ccview:2,cdb1:1,cdblog:2,certain:1,cfae778df80635ad15daa09e0264a988:5,cfae968df80635ad15a9709e0264a988:5,cfae968df80635ad15d5709e0264a988:5,chang:[1,3,6,7,10],check:[6,9,10,12],checkpoint:1,ciminst:12,clear:[0,2,6,7],clearcach:1,cli:7,clone:8,close:10,cluster:[7,10],cmdlet:[3,5,6,7,8,9,10],code:[10,12],color:10,com:[1,8],combin:6,come:11,command:8,commit:7,common:4,commonparamet:2,compact:[5,7],compani:11,compat:[1,6],complet:[6,10],complex:[1,6,12],compress:[1,2,4,6,7],comput:12,computercpu:12,computerdisk:12,computerhw:12,computerinventori:12,computernam:12,condit:[1,6],configur:[1,7,9,10],confirm:[2,8],conflict:[2,5,6],connect:[2,7,10,12],consid:6,construct:1,contain:[1,4,5,6,9],content:[5,6,7],content_typ:1,continu:[2,8,10],contribut:7,convertto:[0,1,9,12],cooki:0,copi:[2,7,8,10],core:[1,6,8],correspond:4,couchdb:[0,1,3,4,5,6,7,8,9,10,12],couchdbactivetask:[2,10],couchdbadmin:[2,9],couchdbanalyz:[2,10],couchdbattach:[2,6],couchdbbulkdocu:[2,6],couchdbcacheprefer:2,couchdbclust:[2,3],couchdbclustersetup:[2,10],couchdbconfigur:[2,3,10],couchdbdatabas:[0,2,4,9,10,12],couchdbdatabasechang:[2,4,10],couchdbdatabasedesigndocu:[2,5],couchdbdatabaseinfo:[2,10],couchdbdatabasepermiss:[2,9],couchdbdatabasepurgedlimit:[2,4],couchdbdatabasesecur:[2,9],couchdbdatabaseshard:[2,4],couchdbdatabaseupd:[2,10],couchdbdesigndocu:[1,2,5,9],couchdbdesigndocumentattach:[2,5],couchdbdocu:[1,2,5,6,12],couchdbfullcommit:[2,4,6],couchdbfulltext:[2,6],couchdbhelp:[2,8],couchdbindex:[1,2,4],couchdblog:[2,10],couchdbmaintenancemod:[2,10],couchdbmissingrevis:[2,4,6],couchdbnod:[2,3,10],couchdbobject:[1,2],couchdbproxi:[2,10],couchdbrepl:[2,8,10],couchdbreplicationdocu:[2,10],couchdbreplicationschedul:[2,10],couchdbrequest:[2,10],couchdbreshard:[2,10],couchdbrevisiondiffer:[2,4],couchdbrevisionlimit:[2,4],couchdbsavecredentialprefer:[0,2],couchdbserv:[2,10],couchdbsess:[0,2],couchdbstatist:[2,10],couchdbus:[2,9],couchdbuuid:[2,10],couchdbview:[2,4],count:[2,10,12],cover:3,cpdoc:2,crash:10,creat:[7,12],createtarget:1,creation:10,credenti:[0,1,2,9,10],credoject:1,creq:[2,10],criteria:[6,12],criterion:1,critic:10,current:[0,4,8],currentus:8,daemon:1,dai:11,dare:11,data:[2,5,6,9,10,12],databas:[0,5,6,7,8,10,12],database_t:4,date:12,db1:1,db2:1,dbname:12,ddoc:[1,4,5,9],debug:10,declar:4,defin:[1,5,6,12],definit:5,delet:[1,4,5,7,9],deleted_conflict:6,deletedconflict:[2,6],dent:6,deploi:3,deprec:5,depth:[1,12],desc:6,descend:[1,2,4,5,6],describ:6,descript:[4,5,6,10],design:[4,6,7,9],designdoc:[2,4,5],destin:[2,4,6,10],detail:[6,10],deviceid:12,differ:[1,3,5,9],direct:6,directori:12,disabl:[1,7],disablecach:1,disableupd:1,disconnect:[2,4],diseas:11,disk:[4,5,6],displai:[8,9,10],divisor:6,dnshostnam:12,doc120:1,doc121:1,doc122:1,doc1:1,doc2:1,doc:[1,5,12],doc_id:1,document:[4,8,9,10],doe:[0,6],doesn:6,dollar:6,don:9,donat:7,download:8,drivetyp:12,dure:9,e_s_t_a_m_p:4,each:[3,4,5,6,10],easi:12,eccl:2,ecdb:2,edg:10,edit:[9,12],effect:9,either:3,element:[2,5,6],elemmatch:6,els:[9,12],emerg:10,emit:[1,5],emitdoc:1,empti:[1,10],enabl:[1,2,3,6,7,8,9],enablecach:1,encod:6,end:[5,6],endkei:[2,4,5,6],endkeydocu:[2,5,6],endpoint:4,engin:1,english:10,enough:1,ensur:6,ensuredatabaseexist:2,enter:1,entir:[1,3,4,10],entri:10,entrytyp:12,equal:[1,6],equemit:1,equival:6,err:[2,10],error:[5,10],erroract:12,etc:10,event:10,eventid:12,eventlog:12,eventsourc:10,everi:[1,6,11],everyth:[6,12],exact:1,exampl:[3,6,10,12],excludeid:2,execut:[1,8],execution_stat:1,executionpolici:8,executionstat:[2,6],exist:[4,6,12],experi:11,explain:2,exportdb:2,express:[1,6,12],extend:[3,12],extern:10,extract:5,f6d66c4d70da66cded6bea889468eb14:[1,6],fail:10,fals:[0,1,2,4,5,6,10],favorit:5,fcdoc:2,feed:[2,10],femal:11,few:12,ffffffff:10,field1:1,field2:1,field3:1,field:[2,4,6,10,12],file:[4,5,6,10,12],filenam:1,filter:[1,2,12],find:[1,2,4,5,7,11,12],finddoc:2,first:[1,3,6,9,10,12],firstnam:6,folder:10,follow:[1,2,4,5,6,8,10],forbidden:[5,9],forc:[0,1,2,4,6,9],ford:6,foreach:12,fork:11,form:9,format:[0,3,4,6,8,9,10],found:[6,8,11],foundat:11,fqdn:1,from:[1,4,5,6,8,9,10,11,12],fromjson:1,full:[5,6,8,10],futur:11,gcadm:2,gcatt:2,gcbdoc:2,gcbpl:2,gcc:2,gcconf:2,gcdatt:2,gcdb:2,gcdbc:2,gcdbp:2,gcdbr:2,gcdbsh:2,gcdbu:2,gcddd:2,gcddoc:2,gcdoc:2,gcidx:2,gcmr:2,gcnode:2,gcrd:2,gcrl:2,gcrpdoc:2,gcrpl:2,gcsi:2,gctsk:2,gcusr:2,gener:6,get:[0,2,7,8,9,12],getadmin:1,getdata:1,getdocu:1,gethashcod:1,gethead:1,getjsonview:1,getmemb:1,getnativequeri:[1,6,12],getrawdata:1,getstatu:1,gettyp:[1,12],geturi:1,getview:1,github:8,give:12,given:[4,6,8],glanc:10,global:10,gplv3:11,grant:[2,9],greater:6,group:[2,6],group_level:6,grouplevel:[2,6],gte:6,guadrini:12,guid:6,hand:4,hardwar:12,has:[1,5,6,10,12],hashtabl:[1,6],have:[1,4,6,10,11],headlin:10,health:10,heart:[1,6],heartbeat:[2,10],help:[3,8,10],helpc:2,here:5,high:8,higher:6,himself:11,histor:[4,10],histori:2,hitchhik:[4,6,10],hitchhikers_guid:10,hour:12,howev:5,http:[1,5,8,10],human:11,hw_inventori:12,icdb:2,idea:12,identifi:[6,10],ids:1,idx:4,ignor:[5,6],impli:6,implicit:[1,6],importdb:2,improv:11,includ:[5,6,10],include_doc:5,includedocu:[2,5,6],inclusiveend:[2,5,6],increas:5,increment:[5,10],indefinit:10,index:[1,5,7,12],index_planet:6,indexof:9,indic:[5,6],individu:[3,4],info:[2,6,7,10,12],inform:[4,5,6,10],insert:1,insid:[0,9],instal:[7,9],instanc:[3,4,5,10,12],instanceid:12,instead:[1,6,7,10],instruct:6,int32:2,integ:6,interest:[6,10],interfac:[3,4,5],intern:4,interpret:1,interv:1,introduct:7,invalid:[1,4,5],invok:5,involv:10,isn:5,issu:7,item:6,its:[1,4,6,10],itself:5,javascript:5,job:[1,2,6,10],jobid:[2,10],jobnam:2,json:[4,6,10,12],just:[1,4,12],keep:[6,10],kei:[1,2,3,4,5,6,10],kept:6,keyword:5,know:[6,12],label:12,languag:[4,5],last:[1,6,10],latest:[2,5,6,8],lazi:6,lead:10,leaf:6,least:6,leav:6,lenghth:5,length:6,less:6,let:[0,8,9,10],level:[2,4,6],librari:6,licens:11,life:6,like:[1,6,10],limit:[2,5,7],line:[1,10,12],link:11,list:[2,3,4,5,10],listen:11,local:[1,2,3,4,7,8,10,12],localhost:[1,5],localsequ:[2,6],log:[1,7],logic:9,loglist:12,lognam:12,longer:4,longpol:10,look:[8,10],loop:12,lot:11,love:11,lte:6,lucen:10,machinenam:12,made:[4,9],magrathea:[1,5,6],mai:[1,5,10],main:[5,11,12],mainten:[2,7],male:11,manag:[1,5],mandatori:12,mango:[4,6,12],mani:6,manual:[1,3],manufactur:12,map:5,mark:6,match:[1,5,6],matteo:12,matteoguadrini:8,matter:6,maxemit:1,maximum:[1,4,6],mcst:2,mean:3,measur:[2,10],member1:1,member2:1,member:7,member_us:9,memori:6,messag:[10,12],metadata:[2,6],method:[2,6],millisecond:[1,10],mind:11,minemit:1,minimum:1,ministri:11,minut:12,miscellan:6,mkadmin:2,mkdb:2,mkdoc:2,mkuser:2,mod:6,mode:[6,10],model:12,modifi:[0,7,9],modul:[1,2,6,8,9,10,11,12],more:[1,3,5,6,10,12],most:[4,10],much:[6,12],multipl:6,must:[1,6,9],my_bookmark:6,mybookmark:1,mydesigndoc:[1,5,9],mydomain:1,myproxi:[1,10],myview:1,name:[1,2,4,5,6,8,10,12],nativ:6,natur:9,navig:5,ncadm:2,ncbd:2,ncdb:2,ncddoc:2,ncdoc:2,ncidx:2,ncrpl:2,ncusr:2,ncuuid:2,need:[6,9,10],neg:6,new_password:9,newdoc:[1,5,9],newvalu:1,next:6,nin:6,noconflict:2,node:[2,4,7,10],nodecount:2,non:[6,11],none:6,nor:6,normal:[6,10],noth:3,notic:10,noupdat:[2,6],now:[0,1,5,9,10],number:[4,5,6,10],numberofcor:12,numberoflogicalprocessor:12,numberofprocessor:12,obj:1,object:[2,3,6,7,9,10,12],obtain:[4,6],offer:6,offset:6,old:[3,5,9],olddoc:[1,5,9],omit:6,onc:0,one:[3,5,6,8,9,10,11,12],onli:[0,1,4,5,6,7,8,10,11],oop:7,opaqu:6,open:[10,11],openrevis:[2,6],oper:[2,5,7,12],option:[1,6,10],order:[4,5,6],organ:[3,11],other:[4,5,6,10,11],other_admin:9,otherwis:[6,10],our:1,out:[4,6,12],outfil:[2,5,6],overrid:10,overwrit:6,overwritten:6,own:10,page:6,pai:6,pair:6,param1:1,param:[0,1,2,12],paramat:1,paramet:[0,4,5,6,9,10,12],part:[6,10],parti:7,particular:[6,10],partit:[2,7],pass:[1,6],passion:11,passwd:1,password:[0,1,2,3,4,5,6,7,10,12],past:12,path:[1,2,4,8,10],patient:11,pattern:[2,6,8],pcre:6,peopl:11,per:10,percentcomplet:12,perform:[4,6],period:10,perl:6,perman:[4,6],permiss:[1,7],permit:1,person:12,persondocu:12,planet:[1,5,6],planet_view:5,point:9,poor:11,port:[2,3],posit:6,possibl:[1,4,5,6],post:1,potenti:12,powershel:[0,1,8,11],powershellgalleri:8,practic:4,prefect:6,prefer:[0,7],prefix:6,present:4,prevent:[1,5],previou:9,previous:[1,6],primari:[1,4],prior:6,privileg:10,process:[4,10],product:5,profil:12,profit:11,programfil:8,progress:12,project:11,prompt:0,properti:12,protect:[0,9],protocol:1,provid:[3,4,5,6],proxi:10,proxycredenti:2,proxyserv:2,proxyuri:1,ps1:12,pscouchdb:[0,6,8,9,10,12],pscouchdbattach:7,pscouchdbbulkdocu:[6,7],pscouchdbdesigndoc:[7,9],pscouchdbdocu:[7,12],pscouchdbqueri:[6,7,12],pscouchdbrepl:[7,10],pscouchdbrequest:7,pscouchdbsecur:[7,9],pscouchdbview:7,pscredenti:[0,1,2,9],psobject:1,pssession:12,purg:7,purged_infos_limit:4,purpos:[6,9,11],put:[1,12],pwd:4,queri:[3,4,7,12],question:6,quiet:12,rang:[2,4,10],rare:11,rather:4,rcadm:2,rcatt:2,rcdb:2,rcdbp:2,rcdbr:2,rcddoc:2,rcdoc:2,rcidx:2,rcnode:2,rcrpl:2,rcs:2,rcsrv:2,rcusr:2,rdatt:2,rdblog:2,reach:[4,5,6],read:[0,1,2,7],read_onli:9,readquorum:[2,6],real:[7,11],reason:[0,5],receiv:[1,5,6],recent:4,recogn:11,record:[5,6],red:11,reduc:[2,5,6],reduct:6,refer:6,reflect:[5,6,12],regardless:6,regex:[6,12],regular:[1,6],religi:11,remaind:6,remot:[3,4],remote_srv:4,remoteauthor:[2,4],remotenod:2,remotepassword:2,remoteport:2,remoteserv:[2,4],remotesign:8,remoteus:2,remov:[0,2,6,7,12],removeadminnam:1,removeadminrol:1,removeallattach:1,removeattach:1,removedocu:1,removeel:1,removefield:1,removeindexi:1,removemapfunct:1,removemembernam:1,removememberrol:1,removeproxi:1,removereducefunct:1,removerevis:[2,4],removeselector:1,removesort:1,removeview:1,rep:[1,10],repdb:1,repeat:4,replac:[2,6,12],replaceattach:1,replacemapfunct:1,replacementstr:12,replacereducefunct:1,replaceselector:1,replaceview:1,replic:[6,7,8],replica:[4,6,7],replicatordatabas:2,replicatordocu:2,report:[1,10],repres:12,represent:1,req:[1,5],request:[2,4,5,6,7,9],requestasjob:1,requir:[3,4,6,10],research:11,reset:[1,7],reshard:10,resourc:4,respect:11,respond:[6,11],respons:[4,5,6,10],restart:[2,10],restmethod:5,restor:[1,4],result:[1,4,5,6,10],retain:6,retri:5,retriev:[5,6],rev:6,revis:[2,5,7,9,12],revok:[2,7],revs_info:6,revs_limit:4,rich:11,rmadmin:2,rmdb:2,rmdoc:2,rmuser:2,role:[1,2,9],root:1,rotat:[2,10],row:6,run:[1,3,4,6,8,9,10],same:[3,4,5,6,10],sampl:10,save:[0,4,5,6,10],savedata:1,scadm:2,scconf:2,scd:2,scda:2,scdbpl:2,scdbr:2,scddoc:2,scdoc:2,scenario:12,scft:2,schedul:12,scientif:11,scope:8,script:[7,8],scrl:2,scrpl:2,scs:2,scusr:2,search:[1,2,5,8,10],searchcriteria:12,sec:[1,9],secobj:[1,5,9],second:[6,10,12],secstringpassword:1,section:[3,6,9],secur:[0,12],securestr:[0,1,2,9],see:[1,3,6,8,9,10],select:[3,5,9,12],selector:[2,12],semplifi:8,send:[1,2,10],sent:10,sequenc:[1,5,6,10],serv:11,server:[3,4,7,9],session:[0,2,8,10,12],set:[0,2,3,5,6,7,8,9,10,12],setbookmark:1,setcancel:1,setcheckpointinterv:1,setcontinu:[1,10],setdata:1,setdatabas:1,setdelet:1,setdocu:1,setdocumentid:1,setel:[1,12],setexecutionstat:1,setfilt:1,setlimit:1,setmethod:1,setparamet:1,setport:1,setproxi:1,setqueryparam:1,setreadquorum:1,setrevis:[1,10],setselector:1,setserv:1,setsincesequ:1,setskip:1,setsourceproxi:1,setsourceserv:1,setsourcessl:1,setssl:1,setstabl:1,setstal:1,settargetproxi:1,settargetserv:1,settargetssl:1,setup:7,setvalidatefunct:[1,9],sever:[4,6],shard:[2,6,7],share:8,should:[5,6,8],show:[5,6,10],sign:[6,7],significantli:5,silentlycontinu:12,similar:5,simpl:[1,9],simpli:[3,4],sinc:[1,2,4,6,10],singl:[1,6,7,9,10],singlenod:[2,3],situat:[5,10],size:[6,12],sizegb:12,skip:[2,4,5],slartibartfast:[5,6],slower:6,socket:10,some:[1,11,12],sort:[2,4],sourc:[1,10,11,12],space:[5,6],special:6,specif:[5,10,12],specifi:[0,1,4,5,6,9,10],specul:11,speed:5,split:10,sqlite:5,src:2,ssl:[2,3],stabl:2,stai:10,stale:2,star:11,start:[4,5,6,7,9,10],startkei:[2,4,5,6],startkeydocu:[2,5,6],startup:10,state:[2,10],statereason:[2,10],statist:[1,10],statu:[2,10,12],step:[3,12],stop:[4,5,6,10],storag:0,store:[0,1,4,5,6,12],str:1,strin:1,string:[0,1,2,5,6,9,10,12],structur:[3,6],stub:6,subfield:6,subset:4,suffer:11,summari:6,suppli:4,support:[1,6,7],surnam:[1,4,12],sync:2,synchron:4,syntax:6,system32:8,system:[1,2,5,10,12],tabl:[1,4,5,6,8,10],tail:[2,10],take:[6,10,12],target:1,task:[8,10,12],tcdb:2,technolog:11,telethon:11,templat:12,termin:9,test1:[1,6,10],test2:[1,5,10],test:[0,1,2,5,6,7,9,10,12],test_01:4,test_copi:4,test_dump:10,test_restor:4,test_test_dump:10,test_valid:5,test_view:1,text:[2,10],than:[1,3,4,6],thank:11,thei:11,them:[1,11,12],thi:[0,1,3,4,5,6,8,9,10,11,12],thing:[3,10],third:12,those:4,three:12,through:[5,6,8],time:[1,3,4,5,6,10],timeout:[2,10],timestamp:12,titl:[5,12],todai:11,togeth:12,tojson:[1,12],token:[0,10],tolow:12,tombston:6,tool:[1,12],topmost:6,tostr:1,total:10,total_row:6,totalphysicalmemori:12,totalphysicalmemorygb:12,track:4,two:[1,3,6,9,10],txt:[1,5,6],type:[2,4,6,10,12],typenam:[1,2,6,9,12],ultim:6,unauthor:[1,5,9],undefin:6,under:[6,8,11],underli:5,uniqu:10,univers:[6,10,11],unix:8,unless:[5,6],unrestrict:8,until:[6,10],unus:5,updat:[2,3,5,10],update_aft:6,update_seq:[5,6],updatesequ:[2,5,6],uribuild:1,usag:5,use:[0,1,4,5,6,7,8,9,12],use_index:1,usecheckpoint:1,used:[1,5,6,9,10],useful:6,useindex:[2,6],usequeri:2,user:[0,1,6,7,8],userctx:[1,5,9],userid:[0,2,9],usernam:[1,12],userpassword:1,userprofil:8,uses:7,using:[1,6,7,9,10,12],usr:8,utf8:4,uuid:10,vacuum:5,valid:[6,9],validate_doc_upd:[1,5],validateset:12,validationfunct:[2,5],valu:[1,2,3,5,6,12],value1:1,variabl:2,variou:[3,6,12],veri:[5,6,12],verifi:[0,1,3,4,8],version:[1,7,8,9,10],view:[6,7,12],viewmapfunct:[2,5],viewnam:[2,5],viewreducefunct:2,vogspher:1,voi:1,volumenam:12,wai:[1,5,10],want:[1,6,8,9,11,12],warn:10,wcfc:2,were:[1,11],what:6,whatif:2,when:[4,5,6],where:6,whether:[5,6],which:[1,4,5,6,10],white:11,who:11,win32_computersystem:12,win32_logicaldisk:12,win32_processor:12,windir:8,window:8,windowslog:12,windowspowershel:8,within:[3,4,5,6],without:[0,1,5,6,9],work:[4,8,11],world:12,wrap:4,write:[2,6,7,12],written:6,wrong:[1,10],year:11,yellow:11,you:[1,4,5,6,7,9,11,12],your:[1,5,8,12],your_domain_control:12,yyyy_hh_mm_ss:12},titles:["Authentication","Classes","Preferences","Setup","Databases","Design documents","Documents","Welcome to PSCouchDB\u2019s documentation!","Introduction","Permission","Server operation","Support","Real uses"],titleterms:{"class":1,"export":4,"function":[1,5],"import":4,"new":4,Use:6,access:9,add:[1,3],admin:[1,9],alias:2,all:1,allmatch:1,attach:[1,5,6],authent:[0,1,2],author:1,background:1,bookmark:[1,6],build:1,bulk:[1,6],cancel:1,chang:4,clear:[4,10],cluster:3,cmdlet:2,code:1,commit:4,compact:4,compress:5,configur:[2,3],connect:4,content:1,continu:1,contribut:11,copi:[4,6],creat:[1,4,5,6,9,10],custom:[5,12],data:1,databas:[1,2,4,9],delet:6,design:[1,2,5],differ:4,disabl:10,document:[1,2,5,6,7,12],donat:11,element:[1,3],elemmatch:1,enabl:10,execut:6,executionstat:1,exist:1,explain:6,field:1,file:1,find:6,flag:1,format:1,get:[1,3,4,5,6,10],git:8,gte:1,header:1,help:2,histori:6,index:[4,6],indexi:1,info:4,instal:8,introduct:8,inventori:12,issu:11,json:1,level:10,limit:[1,4,6,9],list:6,local:6,log:[10,12],logic:[1,6],lte:1,machin:12,mainten:10,mango:1,map:1,member:[1,9],method:1,miss:[4,6],mod:1,modifi:[1,3,5,6,10],nativ:1,nin:1,node:3,nor:1,object:1,one:1,onli:9,oop:12,oper:[1,6,10],other:1,paramet:1,parti:9,partit:[4,6],password:9,permiss:[2,9],port:1,prefer:2,properti:1,proxi:1,pscouchdb:[1,7],pscouchdbattach:1,pscouchdbbulkdocu:1,pscouchdbdesigndoc:1,pscouchdbdocu:1,pscouchdbqueri:1,pscouchdbrepl:1,pscouchdbrequest:1,pscouchdbsecur:1,pscouchdbview:1,purg:[4,6],queri:[1,6],quorum:6,read:[4,6,9,10],readquorum:1,real:12,reduc:1,regex:1,remov:[1,3,4,5,9,10],replac:1,replic:[1,2,10],replica:[1,10],request:[1,10],reset:9,revis:[1,4,6],revok:9,script:12,search:6,secur:1,selector:[1,6],server:[1,2,10],set:[1,4],setup:3,shard:4,sign:8,simpl:12,singl:3,size:1,skip:[1,6],sort:[1,6],specif:6,ssl:1,stabl:[1,6],stale:[1,6],start:8,statist:6,statu:1,storag:12,support:11,sync:4,test:4,type:1,updat:[1,6],uri:1,user:9,uses:12,valid:[1,5],view:[1,4,5],welcom:7,work:1,write:[4,9]}}) \ No newline at end of file diff --git a/docs/build/html/server.html b/docs/build/html/server.html index 379d77f..ea236e3 100644 --- a/docs/build/html/server.html +++ b/docs/build/html/server.html @@ -105,6 +105,7 @@
  • Modify replica
  • Remove replica
  • Replication request
  • +
  • Enable/Disable Maintenance
  • Authentication
  • @@ -410,6 +411,17 @@

    Replication request +

    Enable/Disable Maintenance

    +

    Enable maintenance mode.

    +
    Set-CouchDBMaintenanceMode -Authorization "admin:password"
    +
    +
    +

    Disable maintenance mode.

    +
    Set-CouchDBMaintenanceMode -Maintenance $false -Authorization "admin:password"
    +
    +
    +

    diff --git a/docs/source/cmdlets.rst b/docs/source/cmdlets.rst index 2d49f15..25e236c 100644 --- a/docs/source/cmdlets.rst +++ b/docs/source/cmdlets.rst @@ -245,6 +245,12 @@ Server Remove-CouchDBReshards [[-Server] ] [[-Port] ] [-JobId] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] +**Set-CouchDBMaintenanceMode** + +.. code-block:: powershell + + Set-CouchDBMaintenanceMode [[-Server] ] [[-Port] ] [[-Node] ] [[-Maintenance] ] [[-Authorization] ] [-Ssl] [[-ProxyServer] ] [[-ProxyCredential] ] [] + Replication *********** diff --git a/docs/source/server.rst b/docs/source/server.rst index 674729d..06ab210 100644 --- a/docs/source/server.rst +++ b/docs/source/server.rst @@ -309,4 +309,19 @@ Request, configure, or stop, a replication operation. using module PSCouchDB $rep = New-Object PSCouchDBReplication -ArgumentList 'test','test_dump' $rep.AddDocIds(@("Hitchhikers","Hitchhikers_Guide")) - Request-CouchDBReplication -Data $rep -Authorization "admin:password" \ No newline at end of file + Request-CouchDBReplication -Data $rep -Authorization "admin:password" + +Enable/Disable Maintenance +__________________________ + +Enable maintenance mode. + +.. code-block:: powershell + + Set-CouchDBMaintenanceMode -Authorization "admin:password" + +Disable maintenance mode. + +.. code-block:: powershell + + Set-CouchDBMaintenanceMode -Maintenance $false -Authorization "admin:password" \ No newline at end of file From dd5231e88a6c47b39d7627bdfef094e09274a1c4 Mon Sep 17 00:00:00 2001 From: Matteo Guadrini Date: Sat, 29 May 2021 13:38:10 +0200 Subject: [PATCH 4/4] Minor release --- CHANGES.md | 7 +++++++ PSCouchDB/PSCouchDB.psd1 | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index a18aa80..af54497 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,12 @@ # Release notes +## 2.3.0 +May 28, 2021 + +- Fix **PSCouchDBDocument** guid. +- Add *Partition* parameter on **Set-CouchDBDocument**. +- Add **Set-CouchDBMaintenanceMode** cmdlet. + ## 2.2.0 Sep 19, 2020 diff --git a/PSCouchDB/PSCouchDB.psd1 b/PSCouchDB/PSCouchDB.psd1 index 4a5a95b..716cc55 100755 --- a/PSCouchDB/PSCouchDB.psd1 +++ b/PSCouchDB/PSCouchDB.psd1 @@ -28,7 +28,7 @@ ) # Version number of this module. - ModuleVersion = '2.2.0' + ModuleVersion = '2.3.0' # Supported PSEditions # CompatiblePSEditions = @()