diff --git a/stable/.buildinfo b/stable/.buildinfo index 02b08da5..2d27bcf3 100644 --- a/stable/.buildinfo +++ b/stable/.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: 449bd9b5be94a4768aa4fd03dc80bcd4 +config: 8e7062634f2bec63f7f837e156b50dab tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/stable/.doctrees/basic-tutorial.doctree b/stable/.doctrees/basic-tutorial.doctree index 42bd667c..769bd20f 100644 Binary files a/stable/.doctrees/basic-tutorial.doctree and b/stable/.doctrees/basic-tutorial.doctree differ diff --git a/stable/.doctrees/credstore.doctree b/stable/.doctrees/credstore.doctree index de25ea8b..7b7b1063 100644 Binary files a/stable/.doctrees/credstore.doctree and b/stable/.doctrees/credstore.doctree differ diff --git a/stable/.doctrees/environment.pickle b/stable/.doctrees/environment.pickle index d233efa1..b744cc45 100644 Binary files a/stable/.doctrees/environment.pickle and b/stable/.doctrees/environment.pickle differ diff --git a/stable/.doctrees/gssapi.doctree b/stable/.doctrees/gssapi.doctree index e40b0dc7..a06228f0 100644 Binary files a/stable/.doctrees/gssapi.doctree and b/stable/.doctrees/gssapi.doctree differ diff --git a/stable/.doctrees/gssapi.raw.doctree b/stable/.doctrees/gssapi.raw.doctree index ce2b96a8..e630aa0f 100644 Binary files a/stable/.doctrees/gssapi.raw.doctree and b/stable/.doctrees/gssapi.raw.doctree differ diff --git a/stable/.doctrees/index.doctree b/stable/.doctrees/index.doctree index 17bf202a..c2fad955 100644 Binary files a/stable/.doctrees/index.doctree and b/stable/.doctrees/index.doctree differ diff --git a/stable/.doctrees/otherdoc.doctree b/stable/.doctrees/otherdoc.doctree index 6c1aa89f..59891235 100644 Binary files a/stable/.doctrees/otherdoc.doctree and b/stable/.doctrees/otherdoc.doctree differ diff --git a/stable/.doctrees/tutorials.doctree b/stable/.doctrees/tutorials.doctree index 1037b5c5..30462dbd 100644 Binary files a/stable/.doctrees/tutorials.doctree and b/stable/.doctrees/tutorials.doctree differ diff --git a/stable/_modules/gssapi/_utils.html b/stable/_modules/gssapi/_utils.html index 457fb0ed..71bb4be2 100644 --- a/stable/_modules/gssapi/_utils.html +++ b/stable/_modules/gssapi/_utils.html @@ -1,21 +1,21 @@ + + - + - gssapi._utils — Python-GSSAPI 1.8.3 documentation - - - - + gssapi._utils — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/creds.html b/stable/_modules/gssapi/creds.html index 259dabdf..523052dd 100644 --- a/stable/_modules/gssapi/creds.html +++ b/stable/_modules/gssapi/creds.html @@ -1,21 +1,21 @@ + + - + - gssapi.creds — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.creds — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/exceptions.html b/stable/_modules/gssapi/exceptions.html index c4b35cb5..0460b787 100644 --- a/stable/_modules/gssapi/exceptions.html +++ b/stable/_modules/gssapi/exceptions.html @@ -1,21 +1,21 @@ + + - + - gssapi.exceptions — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.exceptions — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/names.html b/stable/_modules/gssapi/names.html index ce804648..98415d52 100644 --- a/stable/_modules/gssapi/names.html +++ b/stable/_modules/gssapi/names.html @@ -1,21 +1,21 @@ + + - + - gssapi.names — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.names — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/chan_bindings.html b/stable/_modules/gssapi/raw/chan_bindings.html index ccf06081..42b5b4da 100644 --- a/stable/_modules/gssapi/raw/chan_bindings.html +++ b/stable/_modules/gssapi/raw/chan_bindings.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.chan_bindings — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.chan_bindings — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/creds.html b/stable/_modules/gssapi/raw/creds.html index 0771a0d6..32a71d2d 100644 --- a/stable/_modules/gssapi/raw/creds.html +++ b/stable/_modules/gssapi/raw/creds.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.creds — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.creds — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/exceptions.html b/stable/_modules/gssapi/raw/exceptions.html index 3fdde05f..8487c276 100644 --- a/stable/_modules/gssapi/raw/exceptions.html +++ b/stable/_modules/gssapi/raw/exceptions.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.exceptions — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.exceptions — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_cred_imp_exp.html b/stable/_modules/gssapi/raw/ext_cred_imp_exp.html index 3e7fcde0..1e7415fa 100644 --- a/stable/_modules/gssapi/raw/ext_cred_imp_exp.html +++ b/stable/_modules/gssapi/raw/ext_cred_imp_exp.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_cred_imp_exp — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_cred_imp_exp — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_cred_store.html b/stable/_modules/gssapi/raw/ext_cred_store.html index 5cd170e9..f4454717 100644 --- a/stable/_modules/gssapi/raw/ext_cred_store.html +++ b/stable/_modules/gssapi/raw/ext_cred_store.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_cred_store — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_cred_store — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_dce.html b/stable/_modules/gssapi/raw/ext_dce.html index bfc3d557..c364ca54 100644 --- a/stable/_modules/gssapi/raw/ext_dce.html +++ b/stable/_modules/gssapi/raw/ext_dce.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_dce — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_dce — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_dce_aead.html b/stable/_modules/gssapi/raw/ext_dce_aead.html index 7ebb742f..2aaf9ca4 100644 --- a/stable/_modules/gssapi/raw/ext_dce_aead.html +++ b/stable/_modules/gssapi/raw/ext_dce_aead.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_dce_aead — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_dce_aead — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_ggf.html b/stable/_modules/gssapi/raw/ext_ggf.html index 86828712..0103e313 100644 --- a/stable/_modules/gssapi/raw/ext_ggf.html +++ b/stable/_modules/gssapi/raw/ext_ggf.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_ggf — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_ggf — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_iov_mic.html b/stable/_modules/gssapi/raw/ext_iov_mic.html index f1daee51..2dcdedab 100644 --- a/stable/_modules/gssapi/raw/ext_iov_mic.html +++ b/stable/_modules/gssapi/raw/ext_iov_mic.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_iov_mic — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_iov_mic — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_krb5.html b/stable/_modules/gssapi/raw/ext_krb5.html index e5862486..53cedd2d 100644 --- a/stable/_modules/gssapi/raw/ext_krb5.html +++ b/stable/_modules/gssapi/raw/ext_krb5.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_krb5 — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_krb5 — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_password.html b/stable/_modules/gssapi/raw/ext_password.html index 380cac83..b352b71e 100644 --- a/stable/_modules/gssapi/raw/ext_password.html +++ b/stable/_modules/gssapi/raw/ext_password.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_password — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_password — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_password_add.html b/stable/_modules/gssapi/raw/ext_password_add.html index cabb40c4..bf13124c 100644 --- a/stable/_modules/gssapi/raw/ext_password_add.html +++ b/stable/_modules/gssapi/raw/ext_password_add.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_password_add — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_password_add — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_rfc4178.html b/stable/_modules/gssapi/raw/ext_rfc4178.html index 1703e1a7..f87d3a43 100644 --- a/stable/_modules/gssapi/raw/ext_rfc4178.html +++ b/stable/_modules/gssapi/raw/ext_rfc4178.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_rfc4178 — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_rfc4178 — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_rfc5587.html b/stable/_modules/gssapi/raw/ext_rfc5587.html index 75d12c53..1788c6af 100644 --- a/stable/_modules/gssapi/raw/ext_rfc5587.html +++ b/stable/_modules/gssapi/raw/ext_rfc5587.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_rfc5587 — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_rfc5587 — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_rfc5588.html b/stable/_modules/gssapi/raw/ext_rfc5588.html index 1a57f884..95f46959 100644 --- a/stable/_modules/gssapi/raw/ext_rfc5588.html +++ b/stable/_modules/gssapi/raw/ext_rfc5588.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_rfc5588 — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_rfc5588 — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_rfc5801.html b/stable/_modules/gssapi/raw/ext_rfc5801.html index 759e0a75..192aae27 100644 --- a/stable/_modules/gssapi/raw/ext_rfc5801.html +++ b/stable/_modules/gssapi/raw/ext_rfc5801.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_rfc5801 — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_rfc5801 — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_rfc6680.html b/stable/_modules/gssapi/raw/ext_rfc6680.html index 699e7542..8b0239e6 100644 --- a/stable/_modules/gssapi/raw/ext_rfc6680.html +++ b/stable/_modules/gssapi/raw/ext_rfc6680.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_rfc6680 — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_rfc6680 — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_s4u.html b/stable/_modules/gssapi/raw/ext_s4u.html index 9ccc5a7e..58432093 100644 --- a/stable/_modules/gssapi/raw/ext_s4u.html +++ b/stable/_modules/gssapi/raw/ext_s4u.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_s4u — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_s4u — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/ext_set_cred_opt.html b/stable/_modules/gssapi/raw/ext_set_cred_opt.html index e6ccbcd2..6f73abef 100644 --- a/stable/_modules/gssapi/raw/ext_set_cred_opt.html +++ b/stable/_modules/gssapi/raw/ext_set_cred_opt.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.ext_set_cred_opt — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.ext_set_cred_opt — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/message.html b/stable/_modules/gssapi/raw/message.html index 68e925e0..d0578a9e 100644 --- a/stable/_modules/gssapi/raw/message.html +++ b/stable/_modules/gssapi/raw/message.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.message — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.message — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/misc.html b/stable/_modules/gssapi/raw/misc.html index 8f7a43d6..f3adb7be 100644 --- a/stable/_modules/gssapi/raw/misc.html +++ b/stable/_modules/gssapi/raw/misc.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.misc — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.misc — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/named_tuples.html b/stable/_modules/gssapi/raw/named_tuples.html index 5f678a13..b2093040 100644 --- a/stable/_modules/gssapi/raw/named_tuples.html +++ b/stable/_modules/gssapi/raw/named_tuples.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.named_tuples — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.named_tuples — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/names.html b/stable/_modules/gssapi/raw/names.html index 0c540f61..13a89ba5 100644 --- a/stable/_modules/gssapi/raw/names.html +++ b/stable/_modules/gssapi/raw/names.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.names — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.names — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/oids.html b/stable/_modules/gssapi/raw/oids.html index de584ae2..64173ee1 100644 --- a/stable/_modules/gssapi/raw/oids.html +++ b/stable/_modules/gssapi/raw/oids.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.oids — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.oids — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/sec_contexts.html b/stable/_modules/gssapi/raw/sec_contexts.html index 5068ffd4..e29ec41f 100644 --- a/stable/_modules/gssapi/raw/sec_contexts.html +++ b/stable/_modules/gssapi/raw/sec_contexts.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.sec_contexts — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.sec_contexts — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/raw/types.html b/stable/_modules/gssapi/raw/types.html index 247ceb3c..5c8c7faf 100644 --- a/stable/_modules/gssapi/raw/types.html +++ b/stable/_modules/gssapi/raw/types.html @@ -1,21 +1,21 @@ + + - + - gssapi.raw.types — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.raw.types — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/gssapi/sec_contexts.html b/stable/_modules/gssapi/sec_contexts.html index 582f14b3..b5acbbe7 100644 --- a/stable/_modules/gssapi/sec_contexts.html +++ b/stable/_modules/gssapi/sec_contexts.html @@ -1,21 +1,21 @@ + + - + - gssapi.sec_contexts — Python-GSSAPI 1.8.3 documentation - - - - + gssapi.sec_contexts — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_modules/index.html b/stable/_modules/index.html index 21c65549..2c5316f5 100644 --- a/stable/_modules/index.html +++ b/stable/_modules/index.html @@ -1,21 +1,21 @@ + + - + - Overview: module code — Python-GSSAPI 1.8.3 documentation - - - - + Overview: module code — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/_static/basic.css b/stable/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/stable/_static/basic.css +++ b/stable/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/stable/_static/css/badge_only.css b/stable/_static/css/badge_only.css index c718cee4..88ba55b9 100644 --- a/stable/_static/css/badge_only.css +++ b/stable/_static/css/badge_only.css @@ -1 +1 @@ -.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:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.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}} \ No newline at end of file +.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:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.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-other-versions .rtd-current-item{font-weight:700}.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}}#flyout-search-form{padding:6px} \ No newline at end of file diff --git a/stable/_static/css/theme.css b/stable/_static/css/theme.css index 19a446a0..6843d97b 100644 --- a/stable/_static/css/theme.css +++ b/stable/_static/css/theme.css @@ -1,4 +1,4 @@ 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 .eqno .headerlink:before,.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 p .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 button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,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?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .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 p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.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 .eqno .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 .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 button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.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 .eqno .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 .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 button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.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 .eqno .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 .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 button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .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 .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 button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.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 button.toctree-expand:before,.wy-menu-vertical li.on a button.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 button.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 .eqno .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 p .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 button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .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 p .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 button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.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 .eqno 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 p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .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 p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.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 .eqno .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 .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .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 .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .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 .btn .headerlink,.rst-content p .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 button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .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 .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 button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .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 .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 button.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 .eqno .btn .fa-large.headerlink,.rst-content .eqno .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 .btn .fa-large.headerlink,.rst-content p .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 button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.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 .eqno .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 .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 button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .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 .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 button.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 .eqno .btn .fa-spin.headerlink,.rst-content .eqno .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 .btn .fa-spin.headerlink,.rst-content p .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 button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.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 .eqno .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 .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.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 .eqno .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 .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 button.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 .eqno .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 .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 button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .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 .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 button.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,.rst-content section 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,.rst-content section 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,.rst-content section ul li p:last-child,.rst-content section 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,.rst-content section 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,.rst-content section 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,.rst-content section 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 .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol 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.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol 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;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.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 button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.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 button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;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 button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.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{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.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 1.618em .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 button.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 button.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 button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.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;max-width:100%}.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 .eqno .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 .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 .eqno .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 .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 button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.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 .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.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,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.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,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.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,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.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>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.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,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.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,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.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,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.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,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.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,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.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 .eqno .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 p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.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 .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}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.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,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.citation>dd,html.writer-html5 .rst-content dl.citation>dt,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.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,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.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}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 aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.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 aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.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{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;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.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}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):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(.citation):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(.citation):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(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>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(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>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(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}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(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):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(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):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(.citation):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(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.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,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.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-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .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 p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.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 .eqno .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 .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 button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.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 .eqno .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 .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 button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.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 .eqno .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 .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 button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .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 .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 button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.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 button.toctree-expand:before,.wy-menu-vertical li.on a button.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 button.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 .eqno .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 p .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 button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .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 p .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 button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.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 .eqno 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 p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .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 p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.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 .eqno .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 .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .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 .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .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 .btn .headerlink,.rst-content p .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 button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .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 .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 button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .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 .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 button.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 .eqno .btn .fa-large.headerlink,.rst-content .eqno .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 .btn .fa-large.headerlink,.rst-content p .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 button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.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 .eqno .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 .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 button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .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 .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 button.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 .eqno .btn .fa-spin.headerlink,.rst-content .eqno .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 .btn .fa-spin.headerlink,.rst-content p .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 button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.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 .eqno .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 .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.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 .eqno .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 .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 button.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 .eqno .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 .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 button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .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 .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 button.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,.rst-content section 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,.rst-content section 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,.rst-content section ul li p:last-child,.rst-content section 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,.rst-content section 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,.rst-content section 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,.rst-content section 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 .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol 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.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol 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;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.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 button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.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 button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;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 button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.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{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.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 1.618em .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 button.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 button.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 button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.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;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{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,.wy-side-nav-search>a.icon{display:block}.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.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.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 .eqno .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 .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 .eqno .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 .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 button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.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-other-versions .rtd-current-item{font-weight:700}.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}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.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,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.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,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.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,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.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>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.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,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.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,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.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,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.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,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.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,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.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 .eqno .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 p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.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 .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}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.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,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.citation>dd,html.writer-html5 .rst-content dl.citation>dt,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.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,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.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}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 aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.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 aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.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{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;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.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}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):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(.citation):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(.citation):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(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>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(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>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(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}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(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):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(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):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(.citation):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(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.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,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.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-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/stable/_static/doctools.js b/stable/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/stable/_static/doctools.js +++ b/stable/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/stable/_static/documentation_options.js b/stable/_static/documentation_options.js index 5c920ee7..54a489bd 100644 --- a/stable/_static/documentation_options.js +++ b/stable/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.8.3', + VERSION: '1.9.0', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/stable/_static/fonts/Lato/lato-bold.eot b/stable/_static/fonts/Lato/lato-bold.eot new file mode 100644 index 00000000..3361183a Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bold.eot differ diff --git a/stable/_static/fonts/Lato/lato-bold.ttf b/stable/_static/fonts/Lato/lato-bold.ttf new file mode 100644 index 00000000..29f691d5 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bold.ttf differ diff --git a/stable/_static/fonts/Lato/lato-bold.woff b/stable/_static/fonts/Lato/lato-bold.woff new file mode 100644 index 00000000..c6dff51f Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bold.woff differ diff --git a/stable/_static/fonts/Lato/lato-bold.woff2 b/stable/_static/fonts/Lato/lato-bold.woff2 new file mode 100644 index 00000000..bb195043 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bold.woff2 differ diff --git a/stable/_static/fonts/Lato/lato-bolditalic.eot b/stable/_static/fonts/Lato/lato-bolditalic.eot new file mode 100644 index 00000000..3d415493 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bolditalic.eot differ diff --git a/stable/_static/fonts/Lato/lato-bolditalic.ttf b/stable/_static/fonts/Lato/lato-bolditalic.ttf new file mode 100644 index 00000000..f402040b Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bolditalic.ttf differ diff --git a/stable/_static/fonts/Lato/lato-bolditalic.woff b/stable/_static/fonts/Lato/lato-bolditalic.woff new file mode 100644 index 00000000..88ad05b9 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bolditalic.woff differ diff --git a/stable/_static/fonts/Lato/lato-bolditalic.woff2 b/stable/_static/fonts/Lato/lato-bolditalic.woff2 new file mode 100644 index 00000000..c4e3d804 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-bolditalic.woff2 differ diff --git a/stable/_static/fonts/Lato/lato-italic.eot b/stable/_static/fonts/Lato/lato-italic.eot new file mode 100644 index 00000000..3f826421 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-italic.eot differ diff --git a/stable/_static/fonts/Lato/lato-italic.ttf b/stable/_static/fonts/Lato/lato-italic.ttf new file mode 100644 index 00000000..b4bfc9b2 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-italic.ttf differ diff --git a/stable/_static/fonts/Lato/lato-italic.woff b/stable/_static/fonts/Lato/lato-italic.woff new file mode 100644 index 00000000..76114bc0 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-italic.woff differ diff --git a/stable/_static/fonts/Lato/lato-italic.woff2 b/stable/_static/fonts/Lato/lato-italic.woff2 new file mode 100644 index 00000000..3404f37e Binary files /dev/null and b/stable/_static/fonts/Lato/lato-italic.woff2 differ diff --git a/stable/_static/fonts/Lato/lato-regular.eot b/stable/_static/fonts/Lato/lato-regular.eot new file mode 100644 index 00000000..11e3f2a5 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-regular.eot differ diff --git a/stable/_static/fonts/Lato/lato-regular.ttf b/stable/_static/fonts/Lato/lato-regular.ttf new file mode 100644 index 00000000..74decd9e Binary files /dev/null and b/stable/_static/fonts/Lato/lato-regular.ttf differ diff --git a/stable/_static/fonts/Lato/lato-regular.woff b/stable/_static/fonts/Lato/lato-regular.woff new file mode 100644 index 00000000..ae1307ff Binary files /dev/null and b/stable/_static/fonts/Lato/lato-regular.woff differ diff --git a/stable/_static/fonts/Lato/lato-regular.woff2 b/stable/_static/fonts/Lato/lato-regular.woff2 new file mode 100644 index 00000000..3bf98433 Binary files /dev/null and b/stable/_static/fonts/Lato/lato-regular.woff2 differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot new file mode 100644 index 00000000..79dc8efe Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf new file mode 100644 index 00000000..df5d1df2 Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff new file mode 100644 index 00000000..6cb60000 Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 new file mode 100644 index 00000000..7059e231 Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot new file mode 100644 index 00000000..2f7ca78a Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf new file mode 100644 index 00000000..eb52a790 Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff new file mode 100644 index 00000000..f815f63f Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff differ diff --git a/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 new file mode 100644 index 00000000..f2c76e5b Binary files /dev/null and b/stable/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 differ diff --git a/stable/_static/graphviz.css b/stable/_static/graphviz.css index 8d81c02e..027576e3 100644 --- a/stable/_static/graphviz.css +++ b/stable/_static/graphviz.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- graphviz extension. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/stable/_static/js/html5shiv-printshiv.min.js b/stable/_static/js/html5shiv-printshiv.min.js deleted file mode 100644 index 2b43bd06..00000000 --- a/stable/_static/js/html5shiv-printshiv.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/** -* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/stable/_static/js/html5shiv.min.js b/stable/_static/js/html5shiv.min.js deleted file mode 100644 index cd1c674f..00000000 --- a/stable/_static/js/html5shiv.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/** -* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/stable/_static/js/versions.js b/stable/_static/js/versions.js new file mode 100644 index 00000000..818bc996 --- /dev/null +++ b/stable/_static/js/versions.js @@ -0,0 +1,224 @@ +const themeFlyoutDisplay = "hidden"; +const themeVersionSelector = "True"; +const themeLanguageSelector = "True"; + +if (themeFlyoutDisplay === "attached") { + function renderLanguages(config) { + if (!config.projects.translations.length) { + return ""; + } + + const languagesHTML = ` +
+
Languages
+ ${config.projects.translations + .map( + (translation) => ` +
+ ${translation.language.code} +
+ `, + ) + .join("\n")} +
+ `; + return languagesHTML; + } + + function renderVersions(config) { + if (!config.versions.active.length) { + return ""; + } + const versionsHTML = ` +
+
Versions
+ ${config.versions.active + .map( + (version) => ` +
+ ${version.slug} +
+ `, + ) + .join("\n")} +
+ `; + return versionsHTML; + } + + function renderDownloads(config) { + if (!Object.keys(config.versions.current.downloads).length) { + return ""; + } + const downloadsNameDisplay = { + pdf: "PDF", + epub: "Epub", + htmlzip: "HTML", + }; + + const downloadsHTML = ` +
+
Downloads
+ ${Object.entries(config.versions.current.downloads) + .map( + ([name, url]) => ` +
+ ${downloadsNameDisplay[name]} +
+ `, + ) + .join("\n")} +
+ `; + return downloadsHTML; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const flyout = ` +
+ + Read the Docs + v: ${config.versions.current.slug} + + +
+
+ ${renderLanguages(config)} + ${renderVersions(config)} + ${renderDownloads(config)} +
+
On Read the Docs
+
+ Project Home +
+
+ Builds +
+
+ Downloads +
+
+
+
Search
+
+ + +
+ +
+
+ + Hosted by Read the Docs + +
+
+ `; + + // Inject the generated flyout into the body HTML element. + document.body.insertAdjacentHTML("beforeend", flyout); + + // Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout. + document + .querySelector("#flyout-search-form") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); + }) +} + +if (themeLanguageSelector || themeVersionSelector) { + function onSelectorSwitch(event) { + const option = event.target.selectedIndex; + const item = event.target.options[option]; + window.location.href = item.dataset.url; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const versionSwitch = document.querySelector( + "div.switch-menus > div.version-switch", + ); + if (themeVersionSelector) { + let versions = config.versions.active; + if (config.versions.current.hidden || config.versions.current.type === "external") { + versions.unshift(config.versions.current); + } + const versionSelect = ` + + `; + + versionSwitch.innerHTML = versionSelect; + versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + + const languageSwitch = document.querySelector( + "div.switch-menus > div.language-switch", + ); + + if (themeLanguageSelector) { + if (config.projects.translations.length) { + // Add the current language to the options on the selector + let languages = config.projects.translations.concat( + config.projects.current, + ); + languages = languages.sort((a, b) => + a.language.name.localeCompare(b.language.name), + ); + + const languageSelect = ` + + `; + + languageSwitch.innerHTML = languageSelect; + languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + else { + languageSwitch.remove(); + } + } + }); +} + +document.addEventListener("readthedocs-addons-data-ready", function (event) { + // Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav. + document + .querySelector("[role='search'] input") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); +}); \ No newline at end of file diff --git a/stable/_static/language_data.js b/stable/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/stable/_static/language_data.js +++ b/stable/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/stable/_static/searchtools.js b/stable/_static/searchtools.js index 7918c3fa..b08d58c9 100644 --- a/stable/_static/searchtools.js +++ b/stable/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,21 +304,38 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", null, - score, + score + boost, filenames[file], ]); } @@ -308,46 +345,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +399,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +509,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +543,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +595,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/stable/basic-tutorial.html b/stable/basic-tutorial.html index 0739b143..a31ec590 100644 --- a/stable/basic-tutorial.html +++ b/stable/basic-tutorial.html @@ -1,22 +1,22 @@ + + - + - + - A Basic Introduction to GSSAPI — Python-GSSAPI 1.8.3 documentation - - - - + A Basic Introduction to GSSAPI — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -34,9 +34,6 @@ Python-GSSAPI -
- 1.8.3 -
@@ -93,21 +90,21 @@

A Basic Introduction to GSSAPIhttps://github.com/directxman12/yalpt). You can also just +YALPT. You can also just read it normally.

To start out, we’ll import python-gssapi, and save the current FQDN for later:

-
>>> import gssapi, socket
->>> FQDN = socket.getfqdn()
->>>
+
>>> import gssapi, socket
+>>> FQDN = socket.getfqdn()
+>>>
 

Note that this assumes you have a KRB5 realm set up, and some relevant -functions available in the REALM object (see gssapi-console.py in -[gssapi_console](https://pypi.python.org/pypi/gssapi_console)), or -try $ run-lit -e gssapi basic-tutorial.md when you have both +functions available in the REALM object (see gssapi-console.py in +gssapi_console), or +try $ run-lit -e gssapi basic-tutorial.md when you have both gssapi_console and yalpt installed). Any actions performed using the -REALM object are not part of the GSSAPI library; the REALM object +REALM object are not part of the GSSAPI library; the REALM object simply contains wrappers to krb5 commands generally run separately from the application using GSSAPI.

@@ -120,25 +117,25 @@

Names and CredentialsSuppose we wanted to refer to an HTTP server on the current host. We could refer to it as a host-based service, or in the default mechanism form (in this case, for krb5):

-
>>> server_hostbased_name = gssapi.Name(f"HTTP@{FQDN}", name_type=gssapi.NameType.hostbased_service)
->>> server_hostbased_name
-Name(b'HTTP@seton.mivehind.net', <OID 1.2.840.113554.1.2.1.4>)
->>> server_name = gssapi.Name(f"HTTP/{FQDN}@")
->>> server_name
-Name(b'HTTP/seton.mivehind.net@', None)
->>>
+
>>> server_hostbased_name = gssapi.Name(f"HTTP@{FQDN}", name_type=gssapi.NameType.hostbased_service)
+>>> server_hostbased_name
+Name(b'HTTP@seton.mivehind.net', <OID 1.2.840.113554.1.2.1.4>)
+>>> server_name = gssapi.Name(f"HTTP/{FQDN}@")
+>>> server_name
+Name(b'HTTP/seton.mivehind.net@', None)
+>>>
 

These are both effectively the same, but if we canonicalize both names with respect to krb5, we’ll see that GSSAPI knows they’re the same:

-
>>> server_name == server_hostbased_name
-False
->>> server_canon_name = server_name.canonicalize(gssapi.MechType.kerberos)
->>> server_hostbased_canon_name = server_hostbased_name.canonicalize(gssapi.MechType.kerberos)
->>> server_canon_name == server_hostbased_canon_name
-True
->>>
+
>>> server_name == server_hostbased_name
+False
+>>> server_canon_name = server_name.canonicalize(gssapi.MechType.kerberos)
+>>> server_hostbased_canon_name = server_hostbased_name.canonicalize(gssapi.MechType.kerberos)
+>>> server_canon_name == server_hostbased_canon_name
+True
+>>>
 

To compare two names of different name types, you should canonicalize @@ -152,15 +149,15 @@

Names and CredentialsFor instance, suppose that we are writing a server, and wish to communicate accept connections as the ‘HTTP’ service. We would need to acquire credentials as such:

-
>>> REALM.addprinc('HTTP/%s@%s' % (FQDN, REALM.realm))
->>> REALM.extract_keytab('HTTP/%s@%s' % (FQDN, REALM.realm), REALM.keytab)
->>> server_creds = gssapi.Credentials(usage='accept', name=server_name)
->>>
+
>>> REALM.addprinc('HTTP/%s@%s' % (FQDN, REALM.realm))
+>>> REALM.extract_keytab('HTTP/%s@%s' % (FQDN, REALM.realm), REALM.keytab)
+>>> server_creds = gssapi.Credentials(usage='accept', name=server_name)
+>>>
 

Note that for the krb5 mechanism, in order to acquire credentials with the GSSAPI, the system must already have a way to access those credentials. -For users, this generally means that they have already performed a kinit +For users, this generally means that they have already performed a kinit (i.e. have cached a TGT), while for services (like above), having a keytab is sufficient. This process is generally performed outside the application using the GSSAPI.

@@ -168,23 +165,23 @@

Names and Credentials

Credentials also have an associated name, lifetime (which may -be None for indefinite), and set of mechanisms with which the +be None for indefinite), and set of mechanisms with which the credentials are usable:

-
>>> server_creds.usage
-'accept'
->>> server_creds.name == server_name
-True
->>> server_creds.lifetime is None
-True
->>> gssapi.MechType.kerberos in server_creds.mechs
-True
->>> gssapi.MechType.kerberos in server_creds.mechs
-True
->>>
+
>>> server_creds.usage
+'accept'
+>>> server_creds.name == server_name
+True
+>>> server_creds.lifetime is None
+True
+>>> gssapi.MechType.kerberos in server_creds.mechs
+True
+>>> gssapi.MechType.kerberos in server_creds.mechs
+True
+>>>
 
-

Each of these settings is setable from the constructor as usage, -name, lifetime, and mechs.

+

Each of these settings is setable from the constructor as usage, +name, lifetime, and mechs.

Security Contexts

@@ -195,11 +192,11 @@

Security Contexts
>>> client_ctx = gssapi.SecurityContext(name=server_name, usage='initiate')
->>> initial_client_token = client_ctx.step()
->>> client_ctx.complete
-False
->>>
+
>>> client_ctx = gssapi.SecurityContext(name=server_name, usage='initiate')
+>>> initial_client_token = client_ctx.step()
+>>> client_ctx.complete
+False
+>>>
 

Just like credentials, security contexts are either initiating @@ -207,9 +204,9 @@

Security Contexts
>>> server_ctx = gssapi.SecurityContext(creds=server_creds, usage='accept')
->>> initial_server_token = server_ctx.step(initial_client_token)
->>>
+
>>> server_ctx = gssapi.SecurityContext(creds=server_creds, usage='accept')
+>>> initial_server_token = server_ctx.step(initial_client_token)
+>>>
 

As you can see, creating an accepting security context is similar. @@ -217,74 +214,74 @@

Security Contexts
>>> server_tok = initial_server_token
->>>
->>> while not (client_ctx.complete and server_ctx.complete):
-...     client_tok = client_ctx.step(server_tok)
-...     if not client_tok:
-...         break
-...     server_tok = server_ctx.step(client_tok)
-...
->>> client_ctx.complete and server_ctx.complete
-True
->>>
+
>>> server_tok = initial_server_token
+>>>
+>>> while not (client_ctx.complete and server_ctx.complete):
+...     client_tok = client_ctx.step(server_tok)
+...     if not client_tok:
+...         break
+...     server_tok = server_ctx.step(client_tok)
+...
+>>> client_ctx.complete and server_ctx.complete
+True
+>>>
 
-

We can now wrap and unwrap messages, using the wrap and unwrap methods -on SecurityContext:

-
>>> message = b'some message here'
->>> wrapped_message, msg_encrypted = client_ctx.wrap(message, True)
->>> message not in wrapped_message
-True
->>> msg_encrypted
-True
->>> server_ctx.unwrap(wrapped_message)
-UnwrapResult(message=b'some message here', encrypted=True, qop=0)
->>>
+

We can now wrap and unwrap messages, using the wrap and unwrap methods +on SecurityContext:

+
>>> message = b'some message here'
+>>> wrapped_message, msg_encrypted = client_ctx.wrap(message, True)
+>>> message not in wrapped_message
+True
+>>> msg_encrypted
+True
+>>> server_ctx.unwrap(wrapped_message)
+UnwrapResult(message=b'some message here', encrypted=True, qop=0)
+>>>
 

We can use the second parameter to control whether or not we encrypt the messages, or just sign them:

-
>>> signed_message, msg_encrypted = client_ctx.wrap(message, False)
->>> msg_encrypted
-False
->>> message in signed_message
-True
->>> server_ctx.unwrap(signed_message)
-UnwrapResult(message=b'some message here', encrypted=False, qop=0)
->>>
+
>>> signed_message, msg_encrypted = client_ctx.wrap(message, False)
+>>> msg_encrypted
+False
+>>> message in signed_message
+True
+>>> server_ctx.unwrap(signed_message)
+UnwrapResult(message=b'some message here', encrypted=False, qop=0)
+>>>
 

Manually passing in a second parameter and checking whether or not encryption was used can get tedious, so python-gssapi provides two convenience methods -to help with this: encrypt and decrypt. If the context is set up to use -encryption, they will call wrap with encryption. If not, they will -call wrap without encryption.

-
>>> encrypted_message = client_ctx.encrypt(message)
->>> encrypted_message != message
-True
->>> server_ctx.decrypt(encrypted_message)
-b'some message here'
->>>
+to help with this: encrypt and decrypt.  If the context is set up to use
+encryption, they will call wrap with encryption.  If not, they will
+call wrap without encryption.

+
>>> encrypted_message = client_ctx.encrypt(message)
+>>> encrypted_message != message
+True
+>>> server_ctx.decrypt(encrypted_message)
+b'some message here'
+>>>
 
-

Notice that if we try to use decrypt a signed message, and exception will be raised, +

Notice that if we try to use decrypt a signed message, and exception will be raised, since the context was set up to use encryption (the default):

-
>>> signed_message, _ = client_ctx.wrap(message, False)
->>> server_ctx.decrypt(signed_message)
-Traceback (most recent call last):
-  File "<stdin>", line 1, in <module>
-  File "<string>", line 2, in decrypt
-  File "/usr/lib/python3.4/site-packages/gssapi/_utils.py", line 167, in check_last_err
-    return func(self, *args, **kwargs)
-  File "/usr/lib/python3.4/site-packages/gssapi/sec_contexts.py", line 295, in decrypt
-    unwrapped_message=res.message)
-gssapi.exceptions.EncryptionNotUsed: Confidentiality was requested, but not used: The context was established with encryption, but unwrapped message was not encrypted.
->>>
+
>>> signed_message, _ = client_ctx.wrap(message, False)
+>>> server_ctx.decrypt(signed_message)
+Traceback (most recent call last):
+  File "<stdin>", line 1, in <module>
+  File "<string>", line 2, in decrypt
+  File "/usr/lib/python3.4/site-packages/gssapi/_utils.py", line 167, in check_last_err
+    return func(self, *args, **kwargs)
+  File "/usr/lib/python3.4/site-packages/gssapi/sec_contexts.py", line 295, in decrypt
+    unwrapped_message=res.message)
+gssapi.exceptions.EncryptionNotUsed: Confidentiality was requested, but not used: The context was established with encryption, but unwrapped message was not encrypted.
+>>>
 
-

There you have it: the basics of GSSAPI. You can use the help function -at the interpreter, or check the [docs](http://pythonhosted.org/gssapi/) +

There you have it: the basics of GSSAPI. You can use the help function +at the interpreter, or check the docs for more information.

diff --git a/stable/credstore.html b/stable/credstore.html index 5b8456ec..cee6527f 100644 --- a/stable/credstore.html +++ b/stable/credstore.html @@ -1,22 +1,22 @@ + + - + - + - Common Values for Credentials Store Extensions — Python-GSSAPI 1.8.3 documentation - - - - + Common Values for Credentials Store Extensions — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -35,9 +35,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/genindex.html b/stable/genindex.html index af9fa27d..3e075812 100644 --- a/stable/genindex.html +++ b/stable/genindex.html @@ -1,21 +1,21 @@ + + - + - Index — Python-GSSAPI 1.8.3 documentation - - - - + Index — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -32,9 +32,6 @@ Python-GSSAPI -
- 1.8.3 -
diff --git a/stable/gssapi.html b/stable/gssapi.html index 97c0f592..b6bd30ba 100644 --- a/stable/gssapi.html +++ b/stable/gssapi.html @@ -1,22 +1,22 @@ + + - + - + - High-Level API — Python-GSSAPI 1.8.3 documentation - - - - + High-Level API — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -35,9 +35,6 @@ Python-GSSAPI -
- 1.8.3 -
@@ -270,20 +267,20 @@

Main Classes

Names

-class Name(base: Name | bytes | str | None = None, name_type: OID | None = None, token: bytes | None = None, composite: bool = False)[source]
+class Name(base: Name | bytes | str | None = None, name_type: OID | None = None, token: bytes | None = None, composite: bool = False)[source]

A GSSAPI Name

This class represents a GSSAPI name which may be used with and/or returned by other GSSAPI methods.

It inherits from the low-level GSSAPI Name class, and thus may used with both low-level and high-level API methods.

This class may be pickled and unpickled, as well as copied.

-

The str and bytes methods may be used to retrieve the +

The str and bytes methods may be used to retrieve the text of the name.

Note

Name strings will be automatically converted to and from unicode strings as appropriate. If a method is listed as returning a -str object, it will return a unicode string.

+str object, it will return a unicode string.

The encoding used will be python-gssapi’s current encoding, which defaults to UTF-8.

@@ -311,7 +308,7 @@

Main Classes
-display_as(name_type: OID) str[source]
+display_as(name_type: OID) str[source]

Display this name as the given name type.

This method attempts to display the current Name using the syntax of the given NameType, if @@ -341,7 +338,7 @@

Main Classes

the displayed name

Return type:
-

str

+

str

Raises:

OperationUnavailableError

@@ -351,26 +348,26 @@

Main Classes
-property name_type: OID | None
+property name_type: OID | None

The NameType of this name

-export(composite: bool = False) bytes[source]
+export(composite: bool = False) bytes[source]

Export this name as a token.

This method exports the name into a byte string which can then be imported by using the token argument of the constructor.

Parameters:
-

composite (bool) – whether or not use to a composite token – +

composite (bool) – whether or not use to a composite token – requires the RFC 6680 extension

Returns:

the exported name in token form

Return type:
-

bytes

+

bytes

Raises:
@@ -423,18 +420,18 @@

Main Classes
-property attributes: MutableMapping | None
+property attributes: MutableMapping | None

The attributes of this name (requires the RFC 6680 extension)

The attributes are presenting in the form of a -MutableMapping (a dict-like object).

-

Retrieved values will always be in the form of frozenset.

+MutableMapping (a dict-like object).

+

Retrieved values will always be in the form of frozenset.

When assigning values, if iterables are used, they be considered to be the set of values for the given attribute. If a non-iterable is used, it will be considered a single value, and automatically wrapped in an iterable.

Note

-

String types (includes bytes) are not considered to +

String types (includes bytes) are not considered to be iterables in this case.

@@ -446,7 +443,7 @@

Main Classes

Credentials

-class Credentials(base: Creds | None = None, token: bytes | None = None, name: Name | None = None, lifetime: int | None = None, mechs: Iterable[OID] | None = None, usage: str = 'both', store: Dict[bytes | str, bytes | str] | None = None)[source]
+class Credentials(base: Creds | None = None, token: bytes | None = None, name: Name | None = None, lifetime: int | None = None, mechs: Iterable[OID] | None = None, usage: str = 'both', store: Dict[bytes | str, bytes | str] | None = None)[source]

GSSAPI Credentials

This class represents a set of GSSAPI credentials which may be used with and/or returned by other GSSAPI methods.

@@ -483,25 +480,25 @@

Main Classes
-property lifetime: int
+property lifetime: int

Get the remaining lifetime of these credentials, in seconds

-property mechs: Set[OID]
+property mechs: Set[OID]

Get the mechanisms for these credentials

-property usage: str
+property usage: str

Get the usage (initiate, accept, or both) of these credentials

-classmethod acquire(name: Name | None = None, lifetime: int | None = None, mechs: Iterable[OID] | None = None, usage: str = 'both', store: Dict[bytes | str, bytes | str] | None = None) AcquireCredResult[source]
+classmethod acquire(name: Name | None = None, lifetime: int | None = None, mechs: Iterable[OID] | None = None, usage: str = 'both', store: Dict[bytes | str, bytes | str] | None = None) AcquireCredResult[source]

Acquire GSSAPI credentials

This method acquires credentials. If the store argument is used, the credentials will be acquired from the given @@ -517,13 +514,13 @@

Main Classes
  • name (Name) – the name associated with the credentials, or None for the default name

  • -
  • lifetime (int) – the desired lifetime of the credentials in seconds, +

  • lifetime (int) – the desired lifetime of the credentials in seconds, or None for indefinite

  • -
  • mechs (list) – the desired MechType OIDs to be used +

  • mechs (list) – the desired MechType OIDs to be used with the credentials, or None for the default set

  • -
  • usage (str) – the usage for the credentials – either ‘both’, +

  • usage (str) – the usage for the credentials – either ‘both’, ‘initiate’, or ‘accept’

  • -
  • store (dict) – the credential store information pointing to the +

  • store (dict) – the credential store information pointing to the credential store from which to acquire the credentials, or None for the default store (requires the cred_store extension)

@@ -549,7 +546,7 @@

Main Classes
-store(store: Dict[bytes | str, bytes | str] | None = None, usage: str = 'both', mech: OID | None = None, overwrite: bool = False, set_default: bool = False) StoreCredResult[source]
+store(store: Dict[bytes | str, bytes | str] | None = None, usage: str = 'both', mech: OID | None = None, overwrite: bool = False, set_default: bool = False) StoreCredResult[source]

Store these credentials into the given store

This method stores the current credentials into the specified credentials store. If the default store is used, support for @@ -559,15 +556,15 @@

Main Classes
Parameters:
    -
  • store (dict) – the store into which to store the credentials, +

  • store (dict) – the store into which to store the credentials, or None for the default store.

  • -
  • usage (str) – the usage to store the credentials with – either +

  • usage (str) – the usage to store the credentials with – either ‘both’, ‘initiate’, or ‘accept’

  • mech (OID) – the MechType to associate with the stored credentials

  • -
  • overwrite (bool) – whether or not to overwrite existing credentials +

  • overwrite (bool) – whether or not to overwrite existing credentials stored with the same name, etc

  • -
  • set_default (bool) – whether or not to set these credentials as +

  • set_default (bool) – whether or not to set these credentials as the default credentials for the given store.

@@ -591,7 +588,7 @@

Main Classes
-impersonate(name: Name | None = None, lifetime: int | None = None, mechs: Iterable[OID] | None = None, usage: str = 'initiate') Credentials[source]
+impersonate(name: Name | None = None, lifetime: int | None = None, mechs: Iterable[OID] | None = None, usage: str = 'initiate') Credentials[source]

Impersonate a name using the current credentials

This method acquires credentials by impersonating another name using the current credentials.

@@ -600,11 +597,11 @@

Main ClassesParameters:
  • name (Name) – the name to impersonate

  • -
  • lifetime (int) – the desired lifetime of the new credentials in +

  • lifetime (int) – the desired lifetime of the new credentials in seconds, or None for indefinite

  • -
  • mechs (list) – the desired MechType OIDs for the new +

  • mechs (list) – the desired MechType OIDs for the new credentials

  • -
  • usage (str) – the desired usage for the new credentials – either +

  • usage (str) – the desired usage for the new credentials – either ‘both’, ‘initiate’, or ‘accept’. Note that some mechanisms may only support ‘initiate’.

@@ -620,16 +617,16 @@

Main Classes
-inquire(name: bool = True, lifetime: bool = True, usage: bool = True, mechs: bool = True) InquireCredResult[source]
+inquire(name: bool = True, lifetime: bool = True, usage: bool = True, mechs: bool = True) InquireCredResult[source]

Inspect these credentials for information

This method inspects these credentials for information about them.

Parameters:
    -
  • name (bool) – get the name associated with the credentials

  • -
  • lifetime (bool) – get the remaining lifetime for the credentials

  • -
  • usage (bool) – get the usage for the credentials

  • -
  • mechs (bool) – get the mechanisms associated with the credentials

  • +
  • name (bool) – get the name associated with the credentials

  • +
  • lifetime (bool) – get the remaining lifetime for the credentials

  • +
  • usage (bool) – get the usage for the credentials

  • +
  • mechs (bool) – get the mechanisms associated with the credentials

Returns:
@@ -651,7 +648,7 @@

Main Classes
-inquire_by_mech(mech: OID, name: bool = True, init_lifetime: bool = True, accept_lifetime: bool = True, usage: bool = True) InquireCredByMechResult[source]
+inquire_by_mech(mech: OID, name: bool = True, init_lifetime: bool = True, accept_lifetime: bool = True, usage: bool = True) InquireCredByMechResult[source]

Inspect these credentials for per-mechanism information

This method inspects these credentials for per-mechanism information about them.

@@ -660,12 +657,12 @@

Main Classes
  • mech (OID) – the mechanism for which to retrieve the information

  • -
  • name (bool) – get the name associated with the credentials

  • -
  • init_lifetime (bool) – get the remaining initiate lifetime for +

  • name (bool) – get the name associated with the credentials

  • +
  • init_lifetime (bool) – get the remaining initiate lifetime for the credentials in seconds

  • -
  • accept_lifetime (bool) – get the remaining accept lifetime for +

  • accept_lifetime (bool) – get the remaining accept lifetime for the credentials in seconds

  • -
  • usage (bool) – get the usage for the credentials

  • +
  • usage (bool) – get the usage for the credentials

Returns:
@@ -680,7 +677,7 @@

Main Classes
-add(name: Name, mech: OID, usage: str = 'both', init_lifetime: int | None = None, accept_lifetime: int | None = None, impersonator: Creds | None = None, store: Dict[bytes | str, bytes | str] | None = None) Credentials[source]
+add(name: Name, mech: OID, usage: str = 'both', init_lifetime: int | None = None, accept_lifetime: int | None = None, impersonator: Creds | None = None, store: Dict[bytes | str, bytes | str] | None = None) Credentials[source]

Acquire more credentials to add to the current set

This method works like acquire(), except that it adds the acquired credentials for a single mechanism to a copy of the current @@ -705,16 +702,16 @@

Main ClassesOID) – the desired MechType to be used with the credentials

-
  • usage (str) – the usage for the credentials – either ‘both’, +

  • usage (str) – the usage for the credentials – either ‘both’, ‘initiate’, or ‘accept’

  • -
  • init_lifetime (int) – the desired initiate lifetime of the +

  • init_lifetime (int) – the desired initiate lifetime of the credentials in seconds, or None for indefinite

  • -
  • accept_lifetime (int) – the desired accept lifetime of the +

  • accept_lifetime (int) – the desired accept lifetime of the credentials in seconds, or None for indefinite

  • impersonator (Credentials) – the credentials to use to impersonate the given name, or None to not acquire normally (requires the s4u extension)

  • -
  • store (dict) – the credential store information pointing to the +

  • store (dict) – the credential store information pointing to the credential store from which to acquire the credentials, or None for the default store (requires the cred_store extension)

  • @@ -741,7 +738,7 @@

    Main Classes
    -export() bytes[source]
    +export() bytes[source]

    Export these credentials into a token

    This method exports the current credentials to a token that can then be imported by passing the token argument to the constructor.

    @@ -752,7 +749,7 @@

    Main Classes

    the exported credentials in token form

    Return type:
    -

    bytes

    +

    bytes

    @@ -764,7 +761,7 @@

    Main Classes

    Security Contexts

    -class SecurityContext(base: SecurityContext | None = None, token: bytes | None = None, name: Name | None = None, creds: Credentials | None = None, lifetime: int | None = None, flags: int | None = None, mech: OID | None = None, channel_bindings: ChannelBindings | None = None, usage: str | None = None)[source]
    +class SecurityContext(base: SecurityContext | None = None, token: bytes | None = None, name: Name | None = None, creds: Credentials | None = None, lifetime: int | None = None, flags: int | None = None, mech: OID | None = None, channel_bindings: ChannelBindings | None = None, usage: str | None = None)[source]

    A GSSAPI Security Context

    This class represents a GSSAPI security context that may be used with and/or returned by other GSSAPI methods.

    @@ -792,7 +789,7 @@

    Main Classes
    -get_signature(message: bytes) bytes[source]
    +get_signature(message: bytes) bytes[source]

    Calculate the signature for a message.

    This method calculates the signature (called a MIC) for the given message, which may be then used with @@ -801,13 +798,13 @@

    Main Classes
    Parameters:
    -

    message (bytes) – the input message

    +

    message (bytes) – the input message

    Returns:

    the message signature

    Return type:
    -

    bytes

    +

    bytes

    Raises:

    @@ -1587,79 +1584,79 @@

    Names class RequirementFlag[source]

    GSSAPI Requirement Flags

    -

    This IntEnum represents flags used with the +

    This IntEnum represents flags used with the SecurityContext-related methods (e.g. init_sec_context())

    The numbers behind the values correspond directly to their C counterparts.

    -delegate_to_peer = 1[source]
    +delegate_to_peer = 1[source]
    -mutual_authentication = 2[source]
    +mutual_authentication = 2[source]
    -replay_detection = 4[source]
    +replay_detection = 4[source]
    -out_of_sequence_detection = 8[source]
    +out_of_sequence_detection = 8[source]
    -confidentiality = 16[source]
    +confidentiality = 16[source]
    -integrity = 32[source]
    +integrity = 32[source]
    -anonymity = 64[source]
    +anonymity = 64[source]
    -protection_ready = 128[source]
    +protection_ready = 128[source]
    -transferable = 256[source]
    +transferable = 256[source]
    -channel_bound = 2048[source]
    +channel_bound = 2048[source]
    -dce_style = 4096[source]
    +dce_style = 4096[source]
    -identify = 8192[source]
    +identify = 8192[source]
    -extended_error = 16384[source]
    +extended_error = 16384[source]
    -ok_as_delegate = 32768[source]
    +ok_as_delegate = 32768[source]
    @@ -1668,7 +1665,7 @@

    Names class AddressType[source]

    GSSAPI Channel Bindings Address Types

    -

    This IntEnum represents the various address +

    This IntEnum represents the various address types used with the ChannelBindings structure.

    The numbers behind the values correspond directly @@ -1677,107 +1674,107 @@

    NamesNone.

    -local = 1[source]
    +local = 1[source]
    -ip = 2[source]
    +ip = 2[source]
    -arpanet = 3[source]
    +arpanet = 3[source]
    -pup = 4[source]
    +pup = 4[source]
    -chaos = 5[source]
    +chaos = 5[source]
    -xerox_ns = 6[source]
    +xerox_ns = 6[source]
    -nbs = 7[source]
    +nbs = 7[source]
    -ecma = 8[source]
    +ecma = 8[source]
    -datakit = 9[source]
    +datakit = 9[source]
    -ccitt = 10[source]
    +ccitt = 10[source]
    -ibm_sna = 11[source]
    +ibm_sna = 11[source]
    -decnet = 12[source]
    +decnet = 12[source]
    -dli = 13[source]
    +dli = 13[source]
    -lat = 14[source]
    +lat = 14[source]
    -hyperchannel = 15[source]
    +hyperchannel = 15[source]
    -appletalk = 16[source]
    +appletalk = 16[source]
    -bisync = 17[source]
    +bisync = 17[source]
    -dss = 18[source]
    +dss = 18[source]
    -osi_tp4 = 19[source]
    +osi_tp4 = 19[source]
    -x25 = 21[source]
    +x25 = 21[source]
    -null = 255[source]
    +null = 255[source]

    @@ -1790,14 +1787,14 @@

    Names
    -kerberos[source]
    +kerberos: gssapi.raw.oids.OID[source]
    -class GenericFlagSet(flags: GenericFlagSet | numbers.Integral | int | None = None)[source]
    +class GenericFlagSet(flags: GenericFlagSet | numbers.Integral | int | None = None)[source]

    A set backed by a 32-bit integer

    This is a set backed by a 32 bit integer. the members are integers where only one @@ -1807,18 +1804,18 @@

    Names
    -MAX_VAL[source]
    +MAX_VAL: int[source]
    -add(flag: int)[source]
    +add(flag: int) None[source]

    Add an element.

    -discard(flag: int)[source]
    +discard(flag: int) None[source]

    Remove an element. Do not raise an exception if absent.

    @@ -1826,17 +1823,17 @@

    Names
    -class IntEnumFlagSet(enum: Type[enum.IntEnum], flags: GenericFlagSet | numbers.Integral | int | None = None)[source]
    +class IntEnumFlagSet(enum: Type[enum.IntEnum], flags: GenericFlagSet | numbers.Integral | int | None = None)[source]

    A set backed by a 32-bit integer with enum members

    This class is a GenericFlagSet where the returned -members are values in an IntEnum.

    +members are values in an IntEnum.

    It functions exactly like a GenericFlagSet, except that it also supports bitwise operations with the enum values.

    -class ChannelBindings(initiator_address_type: int | None = None, initiator_address: bytes | None = None, acceptor_address_type: int | None = None, acceptor_address: bytes | None = None, application_data: bytes | None = None)[source]
    +class ChannelBindings(initiator_address_type: int | None = None, initiator_address: bytes | None = None, acceptor_address_type: int | None = None, acceptor_address: bytes | None = None, application_data: bytes | None = None)[source]

    GSSAPI Channel Bindings

    This class represents a set of GSSAPI channel bindings.

    @@ -1852,27 +1849,27 @@

    Names
    -initiator_address_type[source]
    +initiator_address_type: int | None[source]
    -initiator_address[source]
    +initiator_address: bytes | None[source]
    -acceptor_address_type[source]
    +acceptor_address_type: int | None[source]
    -acceptor_address[source]
    +acceptor_address: bytes | None[source]
    -application_data[source]
    +application_data: bytes | None[source]

    @@ -1893,7 +1890,7 @@

    Additional RFCs and Extensions

    RFC 4178 (GSS-API Negotiation Mechanism)

    -set_neg_mechs(cred_handle: gssapi.raw.creds.Creds, mech_set: Iterable[gssapi.raw.oids.OID])[source]
    +set_neg_mechs(cred_handle: gssapi.raw.creds.Creds, mech_set: Iterable[gssapi.raw.oids.OID]) None[source]

    Specify the set of security mechanisms that may be negotiated with the credential identified by cred_handle. If more than one mechanism is specified in mech_set, the order in @@ -1919,7 +1916,7 @@

    Additional RFCs and Extensions

    RFC 5587 (GSS-API Extension for Mech Attributes)

    -indicate_mechs_by_attrs(desired_mech_attrs: Iterable[gssapi.raw.oids.OID] | None = None, except_mech_attrs: Iterable[gssapi.raw.oids.OID] | None = None, critical_mech_attrs: Iterable[gssapi.raw.oids.OID] | None = None)[source]
    +indicate_mechs_by_attrs(desired_mech_attrs: Iterable[gssapi.raw.oids.OID] | None = None, except_mech_attrs: Iterable[gssapi.raw.oids.OID] | None = None, critical_mech_attrs: Iterable[gssapi.raw.oids.OID] | None = None) Set[gssapi.raw.oids.OID][source]

    Get a set of mechanisms that have the specified attributes.

    Parameters:
    @@ -1946,7 +1943,7 @@

    Additional RFCs and Extensions
    -inquire_attrs_for_mech(mech: gssapi.raw.oids.OID)[source]
    +inquire_attrs_for_mech(mech: gssapi.raw.oids.OID) gssapi.raw.named_tuples.InquireAttrsResult[source]

    Gets the set of attrs supported and known by a mechanism.

    Parameters:
    @@ -1967,7 +1964,7 @@

    Additional RFCs and Extensions
    -display_mech_attr(attr: gssapi.raw.oids.OID)[source]
    +display_mech_attr(attr: gssapi.raw.oids.OID) gssapi.raw.named_tuples.DisplayAttrResult[source]

    Returns information about attributes in human readable form.

    Parameters:
    @@ -1992,7 +1989,7 @@

    Additional RFCs and Extensions

    RFC 5588 (GSS-API Extension for Storing Delegated Credentials)

    -store_cred(creds: gssapi.raw.creds.Creds, usage: str = 'both', mech: gssapi.raw.oids.OID | None = None, overwrite: bool = False, set_default: bool = False)[source]
    +store_cred(creds: gssapi.raw.creds.Creds, usage: str = 'both', mech: gssapi.raw.oids.OID | None = None, overwrite: bool = False, set_default: bool = False) gssapi.raw.named_tuples.StoreCredResult[source]

    Store credentials into the default store.

    This method stores the given credentials into the default store. They may then be retrieved later using @@ -2001,13 +1998,13 @@

    Additional RFCs and ExtensionsParameters:
    • creds (Creds) – the credentials to store

    • -
    • usage (str) – the usage to store the credentials with – either +

    • usage (str) – the usage to store the credentials with – either ‘both’, ‘initiate’, or ‘accept’

    • mech (OID) – the mechansim to associate with the stored credentials

    • -
    • overwrite (bool) – whether or not to overwrite existing credentials +

    • overwrite (bool) – whether or not to overwrite existing credentials stored with the same name, etc

    • -
    • set_default (bool) – whether or not to set these credentials as +

    • set_default (bool) – whether or not to set these credentials as the default credentials for the given store.

    @@ -2034,7 +2031,7 @@

    Additional RFCs and Extensions

    RFC 5801 (GSS-API SASL Extensions)

    -inquire_saslname_for_mech(mech: gssapi.raw.oids.OID)[source]
    +inquire_saslname_for_mech(mech: gssapi.raw.oids.OID) gssapi.raw.named_tuples.InquireSASLNameResult[source]

    Gets information about a specified mech, including the SASL name, the mech name, and the mech description.

    @@ -2056,11 +2053,11 @@

    Additional RFCs and Extensions
    -inquire_mech_for_saslname(sasl_name: bytes)[source]
    +inquire_mech_for_saslname(sasl_name: bytes) gssapi.raw.oids.OID[source]

    Gets the OID for the mech specified by SASL name.

    Parameters:
    -

    sasl_name (bytes) – SASL name of the mechanism

    +

    sasl_name (bytes) – SASL name of the mechanism

    Returns:

    the mechanism with corresponding SASL name.

    @@ -2080,7 +2077,7 @@

    Additional RFCs and Extensions
    -acquire_cred_from(dict_store: Dict[bytes | str, bytes | str] | None = None, name: gssapi.raw.names.Name | None = None, lifetime: int | None = None, mechs: Iterable[gssapi.raw.oids.OID] | None = None, usage: str = 'both')[source]
    +acquire_cred_from(dict_store: Dict[bytes | str, bytes | str] | None = None, name: gssapi.raw.names.Name | None = None, lifetime: int | None = None, mechs: Iterable[gssapi.raw.oids.OID] | None = None, usage: str = 'both') gssapi.raw.named_tuples.AcquireCredResult[source]

    Acquire credentials from the given store.

    This method acquires credentials from the store specified by the given credential store information.

    @@ -2090,16 +2087,16 @@

    Additional RFCs and Extensions
    Parameters:
      -
    • store (dict) – the credential store information pointing to the +

    • store (dict) – the credential store information pointing to the credential store from which to acquire the credentials. See Common Values for Credentials Store Extensions for valid values

    • name (Name) – the name associated with the credentials, or None for the default name

    • -
    • lifetime (int) – the desired lifetime of the credentials in seconds, or +

    • lifetime (int) – the desired lifetime of the credentials in seconds, or None for indefinite

    • -
    • mechs (list) – the desired mechanisms to be used with these +

    • mechs (list) – the desired mechanisms to be used with these credentials, or None for the default set

    • -
    • usage (str) – the usage for these credentials – either ‘both’, +

    • usage (str) – the usage for these credentials – either ‘both’, ‘initiate’, or ‘accept’

    @@ -2118,7 +2115,7 @@

    Additional RFCs and Extensions
    -add_cred_from(dict_store: Dict[bytes | str, bytes | str] | None, input_creds: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, mech: gssapi.raw.oids.OID, usage: str = 'both', init_lifetime: int | None = None, accept_lifetime: int | None = None)[source]
    +add_cred_from(dict_store: Dict[bytes | str, bytes | str] | None, input_creds: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, mech: gssapi.raw.oids.OID, usage: str = 'both', init_lifetime: int | None = None, accept_lifetime: int | None = None) gssapi.raw.named_tuples.AcquireCredResult[source]

    Acquire credentials to add to the current set from the given store.

    This method works like acquire_cred_from(), except that it adds the acquired credentials for a single mechanism to a copy of @@ -2131,17 +2128,17 @@

    Additional RFCs and Extensions
    Parameters:
      -
    • store (dict) – the store into which to store the credentials, +

    • store (dict) – the store into which to store the credentials, or None for the default store. See Common Values for Credentials Store Extensions for valid values

    • name (Name) – the name associated with the credentials

    • mech (OID) – the desired mechanism to be used with these credentials

    • -
    • usage (str) – the usage for these credentials – either ‘both’, +

    • usage (str) – the usage for these credentials – either ‘both’, ‘initiate’, or ‘accept’

    • -
    • init_lifetime (int) – the desired initiate lifetime of the credentials +

    • init_lifetime (int) – the desired initiate lifetime of the credentials in seconds, or None for indefinite

    • -
    • accept_lifetime (int) – the desired accept lifetime of the credentials +

    • accept_lifetime (int) – the desired accept lifetime of the credentials in seconds, or None for indefinite

    @@ -2160,7 +2157,7 @@

    Additional RFCs and Extensions
    -store_cred_into(dict_store: Dict[bytes | str, bytes | str] | None, creds: gssapi.raw.creds.Creds, usage: str = 'both', mech: gssapi.raw.oids.OID | None = None, overwrite: bool = False, set_default: bool = False)[source]
    +store_cred_into(dict_store: Dict[bytes | str, bytes | str] | None, creds: gssapi.raw.creds.Creds, usage: str = 'both', mech: gssapi.raw.oids.OID | None = None, overwrite: bool = False, set_default: bool = False) gssapi.raw.named_tuples.StoreCredResult[source]

    Store credentials into the given store.

    This method stores the given credentials into the store specified by the given store information. They may then be retrieved later using @@ -2171,17 +2168,17 @@

    Additional RFCs and Extensions
    Parameters:
      -
    • store (dict) – the store into which to store the credentials, +

    • store (dict) – the store into which to store the credentials, or None for the default store. See Common Values for Credentials Store Extensions for valid values

    • creds (Creds) – the credentials to store

    • -
    • usage (str) – the usage to store the credentials with – either +

    • usage (str) – the usage to store the credentials with – either ‘both’, ‘initiate’, or ‘accept’

    • mech (OID) – the mechansim to associate with the stored credentials

    • -
    • overwrite (bool) – whether or not to overwrite existing credentials +

    • overwrite (bool) – whether or not to overwrite existing credentials stored with the same name, etc

    • -
    • set_default (bool) – whether or not to set these credentials as +

    • set_default (bool) – whether or not to set these credentials as the default credentials for the given store.

    @@ -2202,7 +2199,7 @@

    Additional RFCs and Extensions

    RFC 6680 (GSS-API Naming Extensions)

    -display_name_ext(name: gssapi.raw.names.Name, name_type: gssapi.raw.oids.OID)[source]
    +display_name_ext(name: gssapi.raw.names.Name, name_type: gssapi.raw.oids.OID) bytes[source]

    Display the given Name using the given name type.

    This method attempts to display the given Name using the syntax of the given name type. If this is not possible, an appropriate error @@ -2219,7 +2216,7 @@

    Additional RFCs and Extensions

    the displayed name

    Return type:
    -

    bytes

    +

    bytes

    Raises:

    OperationUnavailableError – the given name could not @@ -2230,7 +2227,7 @@

    Additional RFCs and Extensions
    -inquire_name(name: gssapi.raw.names.Name, mech_name: bool = True, attrs: bool = True)[source]
    +inquire_name(name: gssapi.raw.names.Name, mech_name: bool = True, attrs: bool = True) gssapi.raw.named_tuples.InquireNameResult[source]

    Get information about a Name.

    This method retrieves information about the given name, including the set of attribute names for the given name, as well as whether or @@ -2240,9 +2237,9 @@

    Additional RFCs and ExtensionsParameters:
    • name (Name) – the name about which to inquire

    • -
    • mech_name (bool) – whether or not to retrieve if this name +

    • mech_name (bool) – whether or not to retrieve if this name is a mech_name (and the associate mechanism)

    • -
    • attrs (bool) – whether or not to retrieve the attribute name list

    • +
    • attrs (bool) – whether or not to retrieve the attribute name list

    Returns:
    @@ -2261,7 +2258,7 @@

    Additional RFCs and Extensions
    -set_name_attribute(name: gssapi.raw.names.Name, attr: bytes, value: Iterable[bytes], complete: bool = False)[source]
    +set_name_attribute(name: gssapi.raw.names.Name, attr: bytes, value: Iterable[bytes], complete: bool = False) None[source]

    Set the value(s) of a name attribute.

    This method sets the value(s) of the given attribute on the given name.

    Note that this functionality more closely matches the pseudo-API @@ -2273,9 +2270,9 @@

    Additional RFCs and ExtensionsParameters:
    • name (Name) – the Name on which to set the attribute

    • -
    • attr (bytes) – the name of the attribute

    • -
    • value (list) – a list of bytes objects to use as the value(s)

    • -
    • complete (bool) – whether or not to mark this attribute’s value +

    • attr (bytes) – the name of the attribute

    • +
    • value (list) – a list of bytes objects to use as the value(s)

    • +
    • complete (bool) – whether or not to mark this attribute’s value set as being “complete”

    @@ -2288,7 +2285,7 @@

    Additional RFCs and Extensions
    -get_name_attribute(name: gssapi.raw.names.Name, attr: bytes, more: int | None = None)[source]
    +get_name_attribute(name: gssapi.raw.names.Name, attr: bytes, more: int | None = None) gssapi.raw.named_tuples.GetNameAttributeResult[source]

    Get the value(s) of a name attribute.

    This method retrieves the value(s) of the given attribute for the given Name.

    @@ -2299,7 +2296,7 @@

    Additional RFCs and ExtensionsParameters:
    • name (Name) – the Name from which to get the attribute

    • -
    • attr (bytes) – the name of the attribute

    • +
    • attr (bytes) – the name of the attribute

    Returns:
    @@ -2320,7 +2317,7 @@

    Additional RFCs and Extensions
    -delete_name_attribute(name: gssapi.raw.names.Name, attr: bytes)[source]
    +delete_name_attribute(name: gssapi.raw.names.Name, attr: bytes) None[source]

    Remove an attribute from a name.

    This method removes an attribute from a Name. This method may be used before set_name_attribute() clear the values of an attribute @@ -2331,7 +2328,7 @@

    Additional RFCs and ExtensionsParameters:
    • name (Name) – the name to remove the attribute from

    • -
    • attr (bytes) – the name of the attribute

    • +
    • attr (bytes) – the name of the attribute

    Raises:
    @@ -2345,7 +2342,7 @@

    Additional RFCs and Extensions
    -export_name_composite(name: gssapi.raw.names.Name)[source]
    +export_name_composite(name: gssapi.raw.names.Name) bytes[source]

    Export a name, preserving attribute information.

    This method functions similarly to export_name(), except that it preserves attribute information. The resulting bytes may be @@ -2365,7 +2362,7 @@

    Additional RFCs and Extensions

    the exported composite name

    Return type:
    -

    bytes

    +

    bytes

    Raises:

    GSSError

    @@ -2379,7 +2376,7 @@

    Additional RFCs and Extensions
    -export_cred(creds: gssapi.raw.creds.Creds)[source]
    +export_cred(creds: gssapi.raw.creds.Creds) bytes[source]

    Export GSSAPI credentials.

    This method exports GSSSAPI credentials into a token which may be transmitted between different processes.

    @@ -2391,7 +2388,7 @@

    Additional RFCs and Extensions

    the exported token representing the given credentials object

    Return type:
    -

    bytes

    +

    bytes

    Raises:

    GSSError

    @@ -2401,13 +2398,13 @@

    Additional RFCs and Extensions
    -import_cred(token: bytes)[source]
    +import_cred(token: bytes) gssapi.raw.creds.Creds[source]

    Import GSSAPI credentials from a token.

    This method imports a credentials object from a token previously exported by export_cred().

    Parameters:
    -

    token (bytes) – the token to import

    +

    token (bytes) – the token to import

    Returns:

    the imported credentials object

    @@ -2426,7 +2423,7 @@

    Additional RFCs and Extensions

    DCE (IOV/AEAD) Extensions

    -wrap_aead(context: gssapi.raw.sec_contexts.SecurityContext, message: bytes, associated: bytes | None = None, confidential: bool = True, qop: int | None = None)[source]
    +wrap_aead(context: gssapi.raw.sec_contexts.SecurityContext, message: bytes, associated: bytes | None = None, confidential: bool = True, qop: int | None = None) gssapi.raw.named_tuples.WrapResult[source]

    Wrap/Encrypt an AEAD message.

    This method takes an input message and associated data, and outputs and AEAD message.

    @@ -2435,11 +2432,11 @@

    Additional RFCs and Extensions
    • context (SecurityContext) – the current security context

    • -
    • message (bytes) – the message to wrap or encrypt

    • -
    • associated (bytes) – associated data to go with the message

    • -
    • confidential (bool) – whether or not to encrypt the message (True), +

    • message (bytes) – the message to wrap or encrypt

    • +
    • associated (bytes) – associated data to go with the message

    • +
    • confidential (bool) – whether or not to encrypt the message (True), or just wrap it with a MIC (False)

    • -
    • qop (int) – the desired Quality of Protection +

    • qop (int) – the desired Quality of Protection (or None for the default QoP)

    @@ -2458,7 +2455,7 @@

    Additional RFCs and Extensions
    -unwrap_aead(context: gssapi.raw.sec_contexts.SecurityContext, message: bytes, associated: bytes | None = None)[source]
    +unwrap_aead(context: gssapi.raw.sec_contexts.SecurityContext, message: bytes, associated: bytes | None = None) gssapi.raw.named_tuples.UnwrapResult[source]

    Unwrap/Decrypt an AEAD message.

    This method takes an encrpyted/wrapped AEAD message and some associated data, and returns an unwrapped/decrypted message.

    @@ -2467,8 +2464,8 @@

    Additional RFCs and Extensions
    • context (SecurityContext) – the current security context

    • -
    • message (bytes) – the AEAD message to unwrap or decrypt

    • -
    • associated (bytes) – associated data that goes with the message

    • +
    • message (bytes) – the AEAD message to unwrap or decrypt

    • +
    • associated (bytes) – associated data that goes with the message

    Returns:
    @@ -2494,47 +2491,47 @@

    Additional RFCs and Extensions
    -empty = 0[source]
    +empty = 0[source]

    -data = 1[source]
    +data = 1[source]
    -header = 2[source]
    +header = 2[source]
    -mech_params = 3[source]
    +mech_params = 3[source]
    -trailer = 7[source]
    +trailer = 7[source]
    -padding = 9[source]
    +padding = 9[source]
    -stream = 10[source]
    +stream = 10[source]
    -sign_only = 11[source]
    +sign_only = 11[source]
    -mic_token = 12[source]
    +mic_token = 12[source]

    @@ -2544,40 +2541,40 @@

    Additional RFCs and Extensionsclass IOVBuffer[source]
    -type[source]
    +type: IOVBufferType[source]
    -allocate[source]
    +allocate: bool | None[source]
    -value[source]
    +value: bytes | None[source]

    -class IOV(*args: IOVBuffer | Tuple[IOVBufferType | int, bool | None, bytes | None] | Tuple[IOVBufferType | int, bool | bytes | None] | bytes | IOVBufferType | int, std_layout: bool = True, auto_alloc: bool = True)[source]
    +class IOV(*args: IOVBuffer | Tuple[IOVBufferType | int, bool | None, bytes | None] | Tuple[IOVBufferType | int, bool | bytes | None] | bytes | IOVBufferType | int, std_layout: bool = True, auto_alloc: bool = True)[source]

    A GSSAPI IOV

    -index(value: Any)[source]
    +index(value: Any) int[source]
    -count(value: Any)[source]
    +count(value: Any) int[source]
    -wrap_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: IOV, confidential: bool = True, qop: int | None = None)[source]
    +wrap_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: IOV, confidential: bool = True, qop: int | None = None) bool[source]

    Wrap/Encrypt an IOV message.

    This method wraps or encrypts an IOV message. The allocate parameter of the IOVBuffer objects in the IOV @@ -2594,9 +2591,9 @@

    Additional RFCs and ExtensionsSecurityContext) – the current security context

  • message (IOV) – an IOV containing the message

  • -
  • confidential (bool) – whether or not to encrypt the miovessage (True), +

  • confidential (bool) – whether or not to encrypt the miovessage (True), or just wrap it with a MIC (False)

  • -
  • qop (int) – the desired Quality of Protection +

  • qop (int) – the desired Quality of Protection (or None for the default QoP)

  • @@ -2604,7 +2601,7 @@

    Additional RFCs and Extensions

    whether or not confidentiality was actually used

    Return type:
    -

    bool

    +

    bool

    Raises:

    GSSError

    @@ -2614,7 +2611,7 @@

    Additional RFCs and Extensions
    -unwrap_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: IOV)[source]
    +unwrap_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: IOV) gssapi.raw.named_tuples.IOVUnwrapResult[source]

    Unwrap/Decrypt an IOV message.

    This method uwraps or decrypts an IOV message. The allocate parameter of the IOVBuffer objects in the IOV @@ -2653,7 +2650,7 @@

    Additional RFCs and Extensions
    -wrap_iov_length(context: gssapi.raw.sec_contexts.SecurityContext, message: IOV, confidential: bool = True, qop: int | None = None)[source]
    +wrap_iov_length(context: gssapi.raw.sec_contexts.SecurityContext, message: IOV, confidential: bool = True, qop: int | None = None) gssapi.raw.named_tuples.WrapResult[source]

    Appropriately size padding, trailer, and header IOV buffers.

    This method sets the length values on the IOV buffers. You should already have data provided for the data (and sign-only) @@ -2690,7 +2687,7 @@

    Additional RFCs and Extensions

    IOV MIC Extensions

    -get_mic_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: gssapi.raw.ext_dce.IOV, qop: int | None = None)[source]
    +get_mic_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: gssapi.raw.ext_dce.IOV, qop: int | None = None) None[source]

    Generate MIC tokens for the given IOV message.

    This method generates a MIC token for the given IOV message, and places it in the mic_token buffer in the @@ -2706,7 +2703,7 @@

    Additional RFCs and ExtensionsIOV) – the IOV containing the message

    -
  • qop (int) – the desired Quality of Protection +

  • qop (int) – the desired Quality of Protection (or None for the default QoP)

  • @@ -2721,7 +2718,7 @@

    Additional RFCs and Extensions
    -get_mic_iov_length(context: gssapi.raw.sec_contexts.SecurityContext, message: gssapi.raw.ext_dce.IOV, qop: int | None = None)[source]
    +get_mic_iov_length(context: gssapi.raw.sec_contexts.SecurityContext, message: gssapi.raw.ext_dce.IOV, qop: int | None = None) None[source]

    Allocate space for the MIC buffer in the given IOV message.

    This method allocates space for the MIC token buffer (mic_token) in the given IOV @@ -2737,7 +2734,7 @@

    Additional RFCs and ExtensionsIOV) – the IOV containing the message

    -
  • qop (int) – the desired Quality of Protection +

  • qop (int) – the desired Quality of Protection (or None for the default QoP)

  • @@ -2752,7 +2749,7 @@

    Additional RFCs and Extensions
    -verify_mic_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: gssapi.raw.ext_dce.IOV, qop: int | None = None)[source]
    +verify_mic_iov(context: gssapi.raw.sec_contexts.SecurityContext, message: gssapi.raw.ext_dce.IOV, qop: int | None = None) int[source]

    Verify that the MIC matches the data in the given IOV message.

    This method verifies that the MIC token in the MIC buffer (mic_token) match the data @@ -2770,7 +2767,7 @@

    Additional RFCs and Extensions

    the QoP used to generate the MIC token

    Return type:
    -

    int

    +

    int

    Raises:

    GSSError

    @@ -2791,7 +2788,7 @@

    Additional RFCs and Extensionshttps://tools.ietf.org/html/draft-engert-ggf-gss-extensions-00

    -inquire_cred_by_oid(cred_handle: gssapi.raw.creds.Creds, desired_aspect: gssapi.raw.oids.OID)[source]
    +inquire_cred_by_oid(cred_handle: gssapi.raw.creds.Creds, desired_aspect: gssapi.raw.oids.OID) List[bytes][source]

    This method inspects a Creds object for information specific to a particular desired aspect as an OID.

    @@ -2806,7 +2803,7 @@

    Additional RFCs and Extensions

    A list of zero or more pieces of data (as bytes objects)

    Return type:
    -

    list

    +

    list

    Raises:

    GSSError

    @@ -2816,7 +2813,7 @@

    Additional RFCs and Extensions
    -inquire_sec_context_by_oid(context: gssapi.raw.sec_contexts.SecurityContext, desired_aspect: gssapi.raw.oids.OID)[source]
    +inquire_sec_context_by_oid(context: gssapi.raw.sec_contexts.SecurityContext, desired_aspect: gssapi.raw.oids.OID) List[bytes][source]

    This method inspects a SecurityContext object for information specific to a particular desired aspect as an OID.

    This method can be used with the GSS_KRB5_INQ_SSPI_SESSION_KEY_OID OID to @@ -2835,7 +2832,7 @@

    Additional RFCs and Extensions

    A list of zero or more pieces of data (as bytes objects)

    Return type:
    -

    list

    +

    list

    Raises:

    GSSError

    @@ -2845,7 +2842,7 @@

    Additional RFCs and Extensions
    -set_sec_context_option(desired_aspect: gssapi.raw.oids.OID, context: gssapi.raw.sec_contexts.SecurityContext, value: bytes | None = None)[source]
    +set_sec_context_option(desired_aspect: gssapi.raw.oids.OID, context: gssapi.raw.sec_contexts.SecurityContext, value: bytes | None = None) None[source]

    This method is used to set a value for a specific OID of a SecurityContext object. The OID and value to pass in depends on the mech the SecurityContext backs.

    @@ -2861,7 +2858,7 @@

    Additional RFCs and ExtensionsSecurityContext) – the Security Context to set, or None to create a new context.

    -
  • value (bytes) – the value to set on the desired aspect of the Security +

  • value (bytes) – the value to set on the desired aspect of the Security Context or None to send GSS_C_EMPTY_BUFFER.

  • @@ -2883,7 +2880,7 @@

    Additional RFCs and Extensions
    -acquire_cred_impersonate_name(impersonator_cred: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, lifetime: int | None = None, mechs: Iterable[gssapi.raw.oids.OID] | None = None, usage: str = 'initiate')[source]
    +acquire_cred_impersonate_name(impersonator_cred: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, lifetime: int | None = None, mechs: Iterable[gssapi.raw.oids.OID] | None = None, usage: str = 'initiate') gssapi.raw.named_tuples.AcquireCredResult[source]

    Acquire credentials by impersonating another name.

    This method is one of the ways to use S4U2Self. It acquires credentials by impersonating another name using a set of proxy credentials. The @@ -2894,11 +2891,11 @@

    Additional RFCs and ExtensionsCreds) – the credentials with permissions to impersonate the target name

  • name (Name) – the name to impersonate

  • -
  • lifetime (int) – the lifetime for the credentials (or None for +

  • lifetime (int) – the lifetime for the credentials (or None for indefinite) in seconds

  • mechs (MechType) – the desired mechanisms for which the credentials should work (or None for the default set)

  • -
  • usage (str) – the usage type for the credentials: may be +

  • usage (str) – the usage type for the credentials: may be ‘initiate’, ‘accept’, or ‘both’

  • @@ -2918,7 +2915,7 @@

    Additional RFCs and Extensions
    -add_cred_impersonate_name(input_cred: gssapi.raw.creds.Creds, impersonator_cred: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, mech: gssapi.raw.oids.OID, usage: str = 'initiate', init_lifetime: int | None = None, accept_lifetime: int | None = None)[source]
    +add_cred_impersonate_name(input_cred: gssapi.raw.creds.Creds, impersonator_cred: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, mech: gssapi.raw.oids.OID, usage: str = 'initiate', init_lifetime: int | None = None, accept_lifetime: int | None = None) gssapi.raw.named_tuples.AddCredResult[source]

    Add a credentials element to a credential by impersonating another name.

    This method is one of the ways to use S4U2Self. It adds credentials to the input credentials by impersonating another name using a set of @@ -2935,12 +2932,12 @@

    Additional RFCs and ExtensionsMechType) – the desired mechanism. Note that this is both singular and required, unlike acquireCredImpersonateName

    -
  • usage (str) – the usage type for the credentials: may be +

  • usage (str) – the usage type for the credentials: may be ‘initiate’, ‘accept’, or ‘both’

  • -
  • init_lifetime (int) – the lifetime, in seconds, for the credentials to +

  • init_lifetime (int) – the lifetime, in seconds, for the credentials to remain valid when using them to initiate security contexts (or None for indefinite)

  • -
  • accept_lifetime (int) – the lifetime, in seconds, for the credentials to +

  • accept_lifetime (int) – the lifetime, in seconds, for the credentials to remain valid when using them to accept security contexts (or None for indefinite)

  • @@ -2964,7 +2961,7 @@

    Additional RFCs and Extensions

    Acquiring Credentials With a Password Extensions

    -acquire_cred_with_password(name: gssapi.raw.names.Name, password: bytes, lifetime: int | None = None, mechs: Iterable[gssapi.raw.oids.OID] | None = None, usage: str = 'initiate')[source]
    +acquire_cred_with_password(name: gssapi.raw.names.Name, password: bytes, lifetime: int | None = None, mechs: Iterable[gssapi.raw.oids.OID] | None = None, usage: str = 'initiate') gssapi.raw.named_tuples.AcquireCredResult[source]

    Acquire credentials through provided password.

    This function is originally from Solaris and is not documented by either MIT or Heimdal.

    @@ -2974,12 +2971,12 @@

    Additional RFCs and ExtensionsParameters:
    • name (Name) – the name to acquire credentials for

    • -
    • password (bytes) – the password used to acquire credentialss with

    • -
    • lifetime (int) – the lifetime for the credentials in seconds (or None +

    • password (bytes) – the password used to acquire credentialss with

    • +
    • lifetime (int) – the lifetime for the credentials in seconds (or None for indefinite)

    • mechs (MechType) – the desired mechanisms for which the credentials should work (or None for the default set)

    • -
    • usage (str) – usage type for credentials. Possible values: +

    • usage (str) – usage type for credentials. Possible values: ‘initiate’ (default), ‘accept’, ‘both’ (failsafe).

    @@ -2999,7 +2996,7 @@

    Additional RFCs and Extensions
    -add_cred_with_password(input_cred: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, mech: gssapi.raw.oids.OID, password: bytes, usage: str = 'initiate', init_lifetime: int | None = None, accept_lifetime: int | None = None)[source]
    +add_cred_with_password(input_cred: gssapi.raw.creds.Creds, name: gssapi.raw.names.Name, mech: gssapi.raw.oids.OID, password: bytes, usage: str = 'initiate', init_lifetime: int | None = None, accept_lifetime: int | None = None) gssapi.raw.named_tuples.AddCredResult[source]

    Add a credential-element to a credential using provided password.

    This function is originally from Solaris and is not documented by either MIT or Heimdal.

    @@ -3011,13 +3008,13 @@

    Additional RFCs and ExtensionsName) – the name to acquire credentials for

  • mech (MechType) – the desired mechanism. Note that this is both singular and required

  • -
  • password (bytes) – the password used to acquire credentialss with

  • -
  • usage (str) – the usage type for the credentials: may be +

  • password (bytes) – the password used to acquire credentialss with

  • +
  • usage (str) – the usage type for the credentials: may be ‘initiate’, ‘accept’, or ‘both’

  • -
  • init_lifetime (int) – the lifetime, in seconds, for the credentials to +

  • init_lifetime (int) – the lifetime, in seconds, for the credentials to remain valid when using them to initiate security contexts (or None for indefinite)

  • -
  • accept_lifetime (int) – the lifetime, in seconds, for the credentials to +

  • accept_lifetime (int) – the lifetime, in seconds, for the credentials to remain valid when using them to accept security contexts (or None for indefinite)

  • @@ -3053,21 +3050,21 @@

    Additional RFCs and Extensions
    -property version[source]
    +property version: int | None[source]

    The structure version number

    Returns:

    the structure version number

    Return type:
    -

    Optional[int]

    +

    Optional[int]

    -property is_initiator[source]
    +property is_initiator: bool | None[source]

    Whether the context was the initiator

    Returns:
    @@ -3075,56 +3072,56 @@

    Additional RFCs and ExtensionsReturn type: -

    Optional[bool]

    +

    Optional[bool]

    -property endtime[source]
    +property endtime: int | None[source]

    Expiration time of the context

    Returns:

    the expiration time of the context

    Return type:
    -

    Optional[int]

    +

    Optional[int]

    -property send_seq[source]
    +property send_seq: int | None[source]

    Sender sequence number

    Returns:

    the sender sequence number

    Return type:
    -

    Optional[int]

    +

    Optional[int]

    -property recv_seq[source]
    +property recv_seq: int | None[source]

    Receiver sequence number

    Returns:

    the receiver sequence number

    Return type:
    -

    Optional[int]

    +

    Optional[int]

    -property protocol[source]
    +property protocol: int | None[source]

    The protocol number

    If the protocol number is 0 then rfc1964_kd is set and cfx_kd is None. If the protocol number is 1 then the opposite @@ -3135,14 +3132,14 @@

    Additional RFCs and Extensions

    the protocol number

    Return type:
    -

    Optional[int]

    +

    Optional[int]

    -property rfc1964_kd[source]
    +property rfc1964_kd: gssapi.raw.named_tuples.Rfc1964KeyData | None[source]

    Keydata for protocol 0 (RFC1964)

    This will be set when protocol is 0.

    @@ -3157,7 +3154,7 @@

    Additional RFCs and Extensions
    -property cfx_kd[source]
    +property cfx_kd: gssapi.raw.named_tuples.CfxKeyData | None[source]

    Key data for protocol 1 (RFC4121)

    This will be set when protocol is 1.

    @@ -3174,7 +3171,7 @@

    Additional RFCs and Extensions
    -krb5_ccache_name(name: bytes | None)[source]
    +krb5_ccache_name(name: bytes | None) bytes[source]

    Set the default Kerberos Protocol credentials cache name.

    This method sets the default credentials cache name for use by he Kerberos mechanism. The default credentials cache is used by @@ -3192,7 +3189,7 @@

    Additional RFCs and Extensions
    Parameters:
    -

    name (Optional[bytes]) – the name to set as the new thread specific +

    name (Optional[bytes]) – the name to set as the new thread specific ccache name. Set to None to revert back to getting the ccache from the config/environment settings.

    @@ -3200,7 +3197,7 @@

    Additional RFCs and Extensions

    the old name that was previously set

    Return type:
    -

    bytes

    +

    bytes

    Raises:

    GSSError

    @@ -3210,7 +3207,7 @@

    Additional RFCs and Extensions
    -krb5_export_lucid_sec_context(context: gssapi.raw.sec_contexts.SecurityContext, version: int)[source]
    +krb5_export_lucid_sec_context(context: gssapi.raw.sec_contexts.SecurityContext, version: int) Krb5LucidContext[source]

    Returns a non-opaque version of the internal context info.

    Gets information about the Kerberos security context passed in. Currently only version 1 is known and supported by this library.

    @@ -3224,7 +3221,7 @@

    Additional RFCs and Extensions
    • context (SecurityContext) – the current security context

    • -
    • version (int) – the output structure version to export. Currently +

    • version (int) – the output structure version to export. Currently only 1 is supported.

    @@ -3242,7 +3239,7 @@

    Additional RFCs and Extensions
    -krb5_extract_authtime_from_sec_context(context: gssapi.raw.sec_contexts.SecurityContext)[source]
    +krb5_extract_authtime_from_sec_context(context: gssapi.raw.sec_contexts.SecurityContext) int[source]

    Get the auth time for the security context.

    Gets the auth time for the established security context.

    @@ -3259,7 +3256,7 @@

    Additional RFCs and Extensions

    the authtime

    Return type:
    -

    int

    +

    int

    Raises:

    GSSError

    @@ -3269,7 +3266,7 @@

    Additional RFCs and Extensions
    -krb5_extract_authz_data_from_sec_context(context: gssapi.raw.sec_contexts.SecurityContext, ad_type: int)[source]
    +krb5_extract_authz_data_from_sec_context(context: gssapi.raw.sec_contexts.SecurityContext, ad_type: int) bytes[source]

    Extracts Kerberos authorization data.

    Extracts authorization data that may be stored within the context.

    @@ -3281,14 +3278,14 @@

    Additional RFCs and Extensions

    Returns:

    the raw authz data from the sec context

    Return type:
    -

    bytes

    +

    bytes

    Raises:

    GSSError

    @@ -3298,7 +3295,7 @@

    Additional RFCs and Extensions
    -krb5_import_cred(cred_handle: gssapi.raw.creds.Creds, cache: int | None = None, keytab_principal: int | None = None, keytab: int | None = None)[source]
    +krb5_import_cred(cred_handle: gssapi.raw.creds.Creds, cache: int | None = None, keytab_principal: int | None = None, keytab: int | None = None) None[source]

    Import Krb5 credentials into GSSAPI credential.

    Imports the krb5 credentials (either or both of the keytab and cache) into the GSSAPI credential so it can be used within GSSAPI. The ccache is @@ -3308,11 +3305,11 @@

    Additional RFCs and ExtensionsParameters:
    • cred_handle (Creds) – the credential handle to import into

    • -
    • cache (int) – the krb5_ccache address pointer, as an int, to import +

    • cache (int) – the krb5_ccache address pointer, as an int, to import from

    • -
    • keytab_principal (int) – the krb5_principal address pointer, as an int, +

    • keytab_principal (int) – the krb5_principal address pointer, as an int, of the credential to import

    • -
    • keytab (int) – the krb5_keytab address pointer, as an int, of the +

    • keytab (int) – the krb5_keytab address pointer, as an int, of the keytab to import

    @@ -3327,7 +3324,7 @@

    Additional RFCs and Extensions
    -krb5_get_tkt_flags(context: gssapi.raw.sec_contexts.SecurityContext)[source]
    +krb5_get_tkt_flags(context: gssapi.raw.sec_contexts.SecurityContext) int[source]

    Return ticket flags for the kerberos ticket.

    Return the ticket flags for the kerberos ticket received when authenticating the initiator.

    @@ -3345,7 +3342,7 @@

    Additional RFCs and Extensions

    the ticket flags for the received kerberos ticket

    Return type:
    -

    int

    +

    int

    Raises:

    GSSError

    @@ -3355,7 +3352,7 @@

    Additional RFCs and Extensions
    -krb5_set_allowable_enctypes(cred_handle: gssapi.raw.creds.Creds, ktypes: Iterable[int])[source]
    +krb5_set_allowable_enctypes(cred_handle: gssapi.raw.creds.Creds, ktypes: Iterable[int]) None[source]

    Limits the keys that can be exported.

    Called by a context initiator after acquiring the creds but before calling init_sec_context() to restrict the set of @@ -3369,7 +3366,7 @@

    Additional RFCs and ExtensionsParameters:
    • cred_hande (Creds) – the credential handle

    • -
    • ktypes (List[int]) – list of enctypes allowed

    • +
    • ktypes (List[int]) – list of enctypes allowed

    Returns:
    @@ -3394,7 +3391,7 @@

    Additional RFCs and Extensionshttps://tools.ietf.org/html/draft-williams-kitten-channel-bound-flag-01

    -set_cred_option(desired_aspect: gssapi.raw.oids.OID, creds: gssapi.raw.creds.Creds | None = None, value: bytes | None = None)[source]
    +set_cred_option(desired_aspect: gssapi.raw.oids.OID, creds: gssapi.raw.creds.Creds | None = None, value: bytes | None = None) gssapi.raw.creds.Creds[source]

    This method is used to set options of a Creds object based on an OID key. The options that can be set depends on the mech the credentials were created with.

    @@ -3410,7 +3407,7 @@

    Additional RFCs and ExtensionsCreds) – the Credentials to set, or None to create a new credential.

    -
  • value (bytes) – the value to set on the desired aspect of the Credential +

  • value (bytes) – the value to set on the desired aspect of the Credential or None to send GSS_C_EMPTY_BUFFER.

  • @@ -3432,7 +3429,7 @@

    Additional RFCs and Extensions

    -class AcquireCredResult(creds: gssapi.raw.creds.Creds, mechs: Set[OID], lifetime: int)[source]
    +class AcquireCredResult(creds: gssapi.raw.creds.Creds, mechs: Set[OID], lifetime: int)[source]

    Credential result when acquiring a GSSAPI credential.

    Create new instance of AcquireCredResult(creds, mechs, lifetime)

    @@ -3443,13 +3440,13 @@

    Results
    -mechs: Set[OID]
    +mechs: Set[OID]

    Set of mechs the cred is for

    -lifetime: int
    +lifetime: int

    Number of seconds for which the cred will remain valid

    @@ -3457,30 +3454,30 @@

    Results
    -class InquireCredResult(name: gssapi.raw.names.Name | None, lifetime: int | None, usage: str | None, mechs: Set[OID] | None)[source]
    +class InquireCredResult(name: gssapi.raw.names.Name | None, lifetime: int | None, usage: str | None, mechs: Set[OID] | None)[source]

    Information about the credential.

    Create new instance of InquireCredResult(name, lifetime, usage, mechs)

    -name: gssapi.raw.names.Name | None
    +name: gssapi.raw.names.Name | None

    The principal associated with the credential

    -lifetime: int | None
    +lifetime: int | None

    Number of seconds which the cred is valid for

    -usage: str | None
    +usage: str | None

    How the credential can be used

    -mechs: Set[OID] | None
    +mechs: Set[OID] | None

    Set of mechs the cred is for

    @@ -3488,30 +3485,30 @@

    Results
    -class InquireCredByMechResult(name: gssapi.raw.names.Name | None, init_lifetime: int | None, accept_lifetime: int | None, usage: str | None)[source]
    +class InquireCredByMechResult(name: gssapi.raw.names.Name | None, init_lifetime: int | None, accept_lifetime: int | None, usage: str | None)[source]

    Information about the credential for a specific mechanism.

    Create new instance of InquireCredByMechResult(name, init_lifetime, accept_lifetime, usage)

    -name: gssapi.raw.names.Name | None
    +name: gssapi.raw.names.Name | None

    The principal associated with the credential

    -init_lifetime: int | None
    +init_lifetime: int | None

    Time valid for initiation, in seconds

    -accept_lifetime: int | None
    +accept_lifetime: int | None

    Time valid for accepting, in seconds

    -usage: str | None
    +usage: str | None

    How the credential can be used

    @@ -3519,30 +3516,30 @@

    Results
    -class AddCredResult(creds: gssapi.raw.creds.Creds | None, mechs: Set[OID], init_lifetime: int, accept_lifetime: int)[source]
    +class AddCredResult(creds: gssapi.raw.creds.Creds | None, mechs: Set[OID], init_lifetime: int, accept_lifetime: int)[source]

    Result of adding to a GSSAPI credential.

    Create new instance of AddCredResult(creds, mechs, init_lifetime, accept_lifetime)

    -creds: gssapi.raw.creds.Creds | None
    +creds: gssapi.raw.creds.Creds | None

    The credential that was generated

    -mechs: Set[OID]
    +mechs: Set[OID]

    Set of mechs the cred is for

    -init_lifetime: int
    +init_lifetime: int

    Time valid for initiation, in seconds

    -accept_lifetime: int
    +accept_lifetime: int

    Time valid for accepting, in seconds

    @@ -3550,18 +3547,18 @@

    Results
    -class DisplayNameResult(name: bytes, name_type: OID | None)[source]
    +class DisplayNameResult(name: bytes, name_type: OID | None)[source]

    Textual representation of a GSSAPI name.

    Create new instance of DisplayNameResult(name, name_type)

    -name: bytes
    +name: bytes

    The representation of the GSSAPI name

    -name_type: OID | None
    +name_type: OID | None

    The type of GSSAPI name

    @@ -3569,18 +3566,18 @@

    Results
    -class WrapResult(message: bytes, encrypted: bool)[source]
    +class WrapResult(message: bytes, encrypted: bool)[source]

    Wrapped message result.

    Create new instance of WrapResult(message, encrypted)

    -message: bytes
    +message: bytes

    The wrapped message

    -encrypted: bool
    +encrypted: bool

    Whether the message is encrypted and not just signed

    @@ -3588,24 +3585,24 @@

    Results
    -class UnwrapResult(message: bytes, encrypted: bool, qop: int)[source]
    +class UnwrapResult(message: bytes, encrypted: bool, qop: int)[source]

    Unwrapped message result.

    Create new instance of UnwrapResult(message, encrypted, qop)

    -message: bytes
    +message: bytes

    The unwrapped message

    -encrypted: bool
    +encrypted: bool

    Whether the message was encrypted and not just signed

    -qop: int
    +qop: int

    The quality of protection applied to the message

    @@ -3613,7 +3610,7 @@

    Results
    -class AcceptSecContextResult(context: gssapi.raw.sec_contexts.SecurityContext, initiator_name: gssapi.raw.names.Name, mech: OID, token: bytes | None, flags: RequirementFlag, lifetime: int, delegated_creds: gssapi.raw.creds.Creds | None, more_steps: bool)[source]
    +class AcceptSecContextResult(context: gssapi.raw.sec_contexts.SecurityContext, initiator_name: gssapi.raw.names.Name, mech: OID, token: bytes | None, flags: RequirementFlag, lifetime: int, delegated_creds: gssapi.raw.creds.Creds | None, more_steps: bool)[source]

    Result when accepting a security context by an initiator.

    Create new instance of AcceptSecContextResult(context, initiator_name, mech, token, flags, lifetime, delegated_creds, more_steps)

    @@ -3636,7 +3633,7 @@

    Results
    -token: bytes | None
    +token: bytes | None

    Token to be returned to the initiator

    @@ -3648,19 +3645,19 @@

    Results
    -lifetime: int
    +lifetime: int

    Seconds for which the context is valid for

    -delegated_creds: gssapi.raw.creds.Creds | None
    +delegated_creds: gssapi.raw.creds.Creds | None

    Delegated credentials

    -more_steps: bool
    +more_steps: bool

    More input is required to complete the exchange

    @@ -3668,7 +3665,7 @@

    Results
    -class InitSecContextResult(context: gssapi.raw.sec_contexts.SecurityContext, mech: OID, flags: RequirementFlag, token: bytes | None, lifetime: int, more_steps: bool)[source]
    +class InitSecContextResult(context: gssapi.raw.sec_contexts.SecurityContext, mech: OID, flags: RequirementFlag, token: bytes | None, lifetime: int, more_steps: bool)[source]

    Result when initiating a security context

    Create new instance of InitSecContextResult(context, mech, flags, token, lifetime, more_steps)

    @@ -3691,19 +3688,19 @@

    Results
    -token: bytes | None
    +token: bytes | None

    Token to be sent to the acceptor

    -lifetime: int
    +lifetime: int

    Seconds for which the context is valid for

    -more_steps: bool
    +more_steps: bool

    More input is required to complete the exchange

    @@ -3711,48 +3708,48 @@

    Results
    -class InquireContextResult(initiator_name: gssapi.raw.names.Name | None, target_name: gssapi.raw.names.Name | None, lifetime: int | None, mech: OID | None, flags: RequirementFlag | None, locally_init: bool | None, complete: bool | None)[source]
    +class InquireContextResult(initiator_name: gssapi.raw.names.Name | None, target_name: gssapi.raw.names.Name | None, lifetime: int | None, mech: OID | None, flags: RequirementFlag | None, locally_init: bool | None, complete: bool | None)[source]

    Information about the security context.

    Create new instance of InquireContextResult(initiator_name, target_name, lifetime, mech, flags, locally_init, complete)

    -initiator_name: gssapi.raw.names.Name | None
    +initiator_name: gssapi.raw.names.Name | None

    Name of the initiator

    -target_name: gssapi.raw.names.Name | None
    +target_name: gssapi.raw.names.Name | None

    Name of the acceptor

    -lifetime: int | None
    +lifetime: int | None

    Time valid for the security context, in seconds

    -mech: OID | None
    +mech: OID | None

    Mech used to create the security context

    -flags: RequirementFlag | None
    +flags: RequirementFlag | None

    Services available for the context

    -locally_init: bool | None
    +locally_init: bool | None

    Context was initiated locally

    -complete: bool | None
    +complete: bool | None

    Context has been established and ready to use

    @@ -3760,18 +3757,18 @@

    Results
    -class StoreCredResult(mechs: List[OID], usage: str)[source]
    +class StoreCredResult(mechs: List[OID], usage: str)[source]

    Result of the credential storing operation.

    Create new instance of StoreCredResult(mechs, usage)

    -mechs: List[OID]
    +mechs: List[OID]

    Mechs that were stored in the credential store

    -usage: str
    +usage: str

    How the credential can be used

    @@ -3779,18 +3776,18 @@

    Results
    -class IOVUnwrapResult(encrypted: bool, qop: int)[source]
    +class IOVUnwrapResult(encrypted: bool, qop: int)[source]

    Unwrapped IOV message result.

    Create new instance of IOVUnwrapResult(encrypted, qop)

    -encrypted: bool
    +encrypted: bool

    Whether the message was encrypted and not just signed

    -qop: int
    +qop: int

    The quality of protection applied to the message

    @@ -3798,18 +3795,18 @@

    Results
    -class InquireNameResult(attrs: List[bytes], is_mech_name: bool, mech: OID)[source]
    +class InquireNameResult(attrs: List[bytes], is_mech_name: bool, mech: OID)[source]

    Information about a GSSAPI Name.

    Create new instance of InquireNameResult(attrs, is_mech_name, mech)

    -attrs: List[bytes]
    +attrs: List[bytes]

    Set of attribute names

    -is_mech_name: bool
    +is_mech_name: bool

    Name is a mechanism name

    @@ -3823,30 +3820,30 @@

    Results
    -class GetNameAttributeResult(values: List[bytes], display_values: List[bytes], authenticated: bool, complete: bool)[source]
    +class GetNameAttributeResult(values: List[bytes], display_values: List[bytes], authenticated: bool, complete: bool)[source]

    GSSAPI Name attribute values.

    Create new instance of GetNameAttributeResult(values, display_values, authenticated, complete)

    -values: List[bytes]
    +values: List[bytes]

    Raw values

    -display_values: List[bytes]
    +display_values: List[bytes]

    Human-readable values

    -authenticated: bool
    +authenticated: bool

    Attribute has been authenticated

    -complete: bool
    +complete: bool

    Attribute value is marked as complete

    @@ -3854,18 +3851,18 @@

    Results
    -class InquireAttrsResult(mech_attrs: Set[OID], known_mech_attrs: Set[OID])[source]
    +class InquireAttrsResult(mech_attrs: Set[OID], known_mech_attrs: Set[OID])[source]

    Set of attributes supported and known by a mechanism.

    Create new instance of InquireAttrsResult(mech_attrs, known_mech_attrs)

    -mech_attrs: Set[OID]
    +mech_attrs: Set[OID]

    The mechanisms attributes

    -known_mech_attrs: Set[OID]
    +known_mech_attrs: Set[OID]

    Known attributes of the mechanism

    @@ -3873,24 +3870,24 @@

    Results
    -class DisplayAttrResult(name: bytes, short_desc: bytes, long_desc: bytes)[source]
    +class DisplayAttrResult(name: bytes, short_desc: bytes, long_desc: bytes)[source]

    Information about an attribute.

    Create new instance of DisplayAttrResult(name, short_desc, long_desc)

    -name: bytes
    +name: bytes

    The mechanism name

    -short_desc: bytes
    +short_desc: bytes

    Short description of the mechanism

    -long_desc: bytes
    +long_desc: bytes

    Long description of the mechanism

    @@ -3898,24 +3895,24 @@

    Results
    -class InquireSASLNameResult(sasl_mech_name: bytes, mech_name: bytes, mech_description: bytes)[source]
    +class InquireSASLNameResult(sasl_mech_name: bytes, mech_name: bytes, mech_description: bytes)[source]

    SASL informmation about a GSSAPI Name.

    Create new instance of InquireSASLNameResult(sasl_mech_name, mech_name, mech_description)

    -sasl_mech_name: bytes
    +sasl_mech_name: bytes

    The SASL name

    -mech_name: bytes
    +mech_name: bytes

    The mechanism name

    -mech_description: bytes
    +mech_description: bytes

    The mechanism description

    @@ -3923,30 +3920,30 @@

    Results
    -class Rfc1964KeyData(sign_alg: int, seal_alg: int, key_type: int, key: bytes)[source]
    +class Rfc1964KeyData(sign_alg: int, seal_alg: int, key_type: int, key: bytes)[source]

    Security context key data based on RFC1964.

    Create new instance of Rfc1964KeyData(sign_alg, seal_alg, key_type, key)

    -sign_alg: int
    +sign_alg: int

    Signing algorithm identifier

    -seal_alg: int
    +seal_alg: int

    Sealing algorithm identifier

    -key_type: int
    +key_type: int

    Key encryption type identifier

    -key: bytes
    +key: bytes

    Encryption key data

    @@ -3954,30 +3951,30 @@

    Results
    -class CfxKeyData(ctx_key_type: int, ctx_key: bytes, acceptor_subkey_type: int | None, acceptor_subkey: bytes | None)[source]
    +class CfxKeyData(ctx_key_type: int, ctx_key: bytes, acceptor_subkey_type: int | None, acceptor_subkey: bytes | None)[source]

    Securty context key data.

    Create new instance of CfxKeyData(ctx_key_type, ctx_key, acceptor_subkey_type, acceptor_subkey)

    -ctx_key_type: int
    +ctx_key_type: int

    Context key encryption type identifier

    -ctx_key: bytes
    +ctx_key: bytes

    Context key data - session or sub-session key

    -acceptor_subkey_type: int | None
    +acceptor_subkey_type: int | None

    Acceptor key enc type identifier

    -acceptor_subkey: bytes | None
    +acceptor_subkey: bytes | None

    Acceptor key data

    @@ -3988,8 +3985,8 @@

    Results

    Exceptions

    -exception GSSError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    -

    Bases: Exception

    +exception GSSError(maj_code: int, min_code: int, token: bytes | None = None)[source] +

    Bases: Exception

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI C bindings. It contains the major and minor status codes @@ -3998,37 +3995,37 @@

    Results codes

    -maj_code
    +maj_code: int
    -min_code
    +min_code: int
    -token
    +token: bytes | None
    -calling_code
    +calling_code: int
    -routine_code
    +routine_code: int
    -supplementary_code
    +supplementary_code: int
    -get_all_statuses(code: int, is_maj: bool)[source]
    +get_all_statuses(code: int, is_maj: bool) List[str][source]

    Retrieve all messages for a status code.

    This method retrieves all human-readable messages available for the given status code.

    @@ -4048,14 +4045,14 @@

    Results

    Return type:
    -

    [str]

    +

    [str]

    -gen_message()[source]
    +gen_message() str[source]

    Retrieves all messages for this error’s status codes

    This method retrieves all messages for this error’s status codes, and forms them into a string for use as an exception message

    @@ -4064,7 +4061,7 @@

    Results

    a string for use as this error’s message

    Return type:
    -

    str

    +

    str

    @@ -4073,7 +4070,7 @@

    Results
    -exception ParameterReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception ParameterReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4085,7 +4082,7 @@

    Results
    -exception ParameterWriteError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception ParameterWriteError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4097,7 +4094,7 @@

    Results
    -exception MalformedParameterError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception MalformedParameterError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4109,7 +4106,7 @@

    Results
    -exception BadMechanismError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception BadMechanismError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4121,7 +4118,7 @@

    Results
    -exception BadNameError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception BadNameError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4133,7 +4130,7 @@

    Results
    -exception BadNameTypeError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception BadNameTypeError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4145,7 +4142,7 @@

    Results
    -exception BadChannelBindingsError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception BadChannelBindingsError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4157,7 +4154,7 @@

    Results
    -exception BadStatusError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception BadStatusError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4169,7 +4166,7 @@

    Results
    -exception BadMICError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception BadMICError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4181,7 +4178,7 @@

    Results
    -exception MissingCredentialsError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception MissingCredentialsError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4193,7 +4190,7 @@

    Results
    -exception MissingContextError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception MissingContextError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4205,7 +4202,7 @@

    Results
    -exception InvalidTokenError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception InvalidTokenError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4217,7 +4214,7 @@

    Results
    -exception InvalidCredentialsError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception InvalidCredentialsError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4229,7 +4226,7 @@

    Results
    -exception ExpiredCredentialsError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception ExpiredCredentialsError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4241,7 +4238,7 @@

    Results
    -exception ExpiredContextError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception ExpiredContextError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4253,7 +4250,7 @@

    Results
    -exception BadQoPError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception BadQoPError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4265,7 +4262,7 @@

    Results
    -exception UnauthorizedError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception UnauthorizedError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4277,7 +4274,7 @@

    Results
    -exception OperationUnavailableError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception OperationUnavailableError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4289,7 +4286,7 @@

    Results
    -exception DuplicateCredentialsElementError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception DuplicateCredentialsElementError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4301,7 +4298,7 @@

    Results
    -exception MechanismNameRequiredError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception MechanismNameRequiredError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4313,7 +4310,7 @@

    Results
    -exception NameReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception NameReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: ParameterReadError, BadNameError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4325,7 +4322,7 @@

    Results
    -exception NameTypeReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception NameTypeReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: ParameterReadError, BadNameTypeError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4337,7 +4334,7 @@

    Results
    -exception TokenReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception TokenReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: ParameterReadError, InvalidTokenError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4349,7 +4346,7 @@

    Results
    -exception ContextReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception ContextReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: ParameterReadError, MissingContextError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4361,7 +4358,7 @@

    Results
    -exception CredentialsReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception CredentialsReadError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: ParameterReadError, MissingCredentialsError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4373,7 +4370,7 @@

    Results
    -exception ContextWriteError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception ContextWriteError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: ParameterWriteError, MissingContextError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4385,7 +4382,7 @@

    Results
    -exception CredentialsWriteError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception CredentialsWriteError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: ParameterWriteError, MissingCredentialsError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4397,7 +4394,7 @@

    Results
    -exception SupplementaryError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception SupplementaryError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: gssapi.raw.misc.GSSError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4409,7 +4406,7 @@

    Results
    -exception DuplicateTokenError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception DuplicateTokenError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: SupplementaryError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4421,7 +4418,7 @@

    Results
    -exception ExpiredTokenError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception ExpiredTokenError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: SupplementaryError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4433,7 +4430,7 @@

    Results
    -exception TokenOutOfSequenceError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception TokenOutOfSequenceError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: SupplementaryError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4445,7 +4442,7 @@

    Results
    -exception TokenTooLateError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception TokenTooLateError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: TokenOutOfSequenceError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI @@ -4457,7 +4454,7 @@

    Results
    -exception TokenTooEarlyError(maj_code: int, min_code: int, token: bytes | None = None)[source]
    +exception TokenTooEarlyError(maj_code: int, min_code: int, token: bytes | None = None)[source]

    Bases: TokenOutOfSequenceError

    A GSSAPI Error

    This Exception represents an error returned from the GSSAPI diff --git a/stable/index.html b/stable/index.html index 48a7d819..7386f513 100644 --- a/stable/index.html +++ b/stable/index.html @@ -1,22 +1,22 @@ + + - + - + - Python-GSSAPI: Python bindings for GSSAPI — Python-GSSAPI 1.8.3 documentation - - - - + Python-GSSAPI: Python bindings for GSSAPI — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -34,9 +34,6 @@ Python-GSSAPI -

    - 1.8.3 -
    diff --git a/stable/objects.inv b/stable/objects.inv index ef3404ed..b51dafd5 100644 Binary files a/stable/objects.inv and b/stable/objects.inv differ diff --git a/stable/otherdoc.html b/stable/otherdoc.html index 870725b3..1dd62c54 100644 --- a/stable/otherdoc.html +++ b/stable/otherdoc.html @@ -1,22 +1,22 @@ + + - + - + - Other Documentation — Python-GSSAPI 1.8.3 documentation - - - - + Other Documentation — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -35,9 +35,6 @@ Python-GSSAPI -
    - 1.8.3 -
    diff --git a/stable/py-modindex.html b/stable/py-modindex.html index 7e39e225..57b682cb 100644 --- a/stable/py-modindex.html +++ b/stable/py-modindex.html @@ -1,21 +1,21 @@ + + - + - Python Module Index — Python-GSSAPI 1.8.3 documentation - - - - + Python Module Index — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -35,9 +35,6 @@ Python-GSSAPI -
    - 1.8.3 -
    diff --git a/stable/search.html b/stable/search.html index 36dadcce..b1aa2e47 100644 --- a/stable/search.html +++ b/stable/search.html @@ -1,22 +1,22 @@ + + - + - Search — Python-GSSAPI 1.8.3 documentation - - - - - + Search — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + + @@ -35,9 +35,6 @@ Python-GSSAPI -
    - 1.8.3 -
    diff --git a/stable/searchindex.js b/stable/searchindex.js index 23f44893..d05f85a1 100644 --- a/stable/searchindex.js +++ b/stable/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["basic-tutorial", "credstore", "gssapi", "gssapi.raw", "index", "otherdoc", "tutorials"], "filenames": ["basic-tutorial.md", "credstore.rst", "gssapi.rst", "gssapi.raw.rst", "index.rst", "otherdoc.rst", "tutorials.rst"], "titles": ["A Basic Introduction to GSSAPI", "Common Values for Credentials Store Extensions", "High-Level API", "Low-Level API", "Python-GSSAPI: Python bindings for GSSAPI", "Other Documentation", "Tutorials"], "terms": {"which": [0, 2, 3, 4], "stand": 0, "gener": [0, 2, 3], "servic": [0, 1, 2, 3], "api": [0, 4], "i": [0, 1, 2, 3, 4, 5], "an": [0, 1, 2, 3, 4], "standard": 0, "layer": 0, "interfac": [0, 1], "while": [0, 2, 3], "support": [0, 1, 2, 3], "multipl": [0, 2, 3], "differ": [0, 1, 2, 3], "mechan": [0, 2], "most": 0, "commonli": [0, 1, 3], "us": [0, 1, 2, 3, 4, 6], "kerbero": [0, 2], "5": [0, 2, 3], "krb5": [0, 2, 3], "short": [0, 3], "thi": [0, 2, 3, 5], "tutori": [0, 4], "provid": [0, 2, 3, 4], "interact": [0, 2], "through": [0, 3], "python": [0, 2, 3, 6], "note": [0, 2, 3], "file": [0, 1, 3], "design": 0, "runnabl": 0, "yalpt": 0, "http": [0, 3], "github": 0, "com": 0, "directxman12": 0, "you": [0, 2, 3], "can": [0, 1, 2, 3], "also": [0, 2, 3], "just": [0, 3], "read": [0, 3], "normal": [0, 2, 3], "To": [0, 3, 4, 6], "start": [0, 2, 4, 6], "out": [0, 4, 6], "we": [0, 3], "ll": 0, "import": [0, 2], "save": 0, "current": [0, 2, 3, 4], "fqdn": 0, "later": [0, 2, 3], "socket": 0, "getfqdn": 0, "assum": 0, "have": [0, 3], "realm": 0, "set": [0, 2, 3], "up": 0, "some": [0, 2, 3, 6], "relev": 0, "function": [0, 1, 2, 3, 4, 5], "avail": [0, 2, 3, 4], "object": [0, 2, 3, 4], "see": [0, 3], "consol": 0, "py": 0, "gssapi_consol": 0, "pypi": 0, "org": [0, 3], "try": [0, 2], "run": 0, "lit": 0, "e": [0, 2, 3], "md": 0, "when": [0, 1, 2, 3], "both": [0, 1, 2, 3], "instal": 0, "ani": [0, 1, 2, 3], "action": 0, "perform": [0, 2], "ar": [0, 1, 2, 3, 4], "part": [0, 3, 4], "librari": [0, 3], "simpli": [0, 2, 3], "contain": [0, 1, 2, 3, 5], "wrapper": [0, 3, 4], "command": 0, "separ": [0, 2, 3], "from": [0, 1, 2, 3, 4], "applic": [0, 1, 3], "two": [0, 3, 4], "concept": 0, "suggest": 0, "identifi": [0, 1, 3], "entiti": [0, 3], "thei": [0, 2, 3], "user": [0, 2, 3], "ha": [0, 1, 2, 3], "type": [0, 1, 2, 3], "These": [0, 2, 3], "repres": [0, 2, 3], "correspond": [0, 2, 3, 4], "syntax": [0, 2, 3], "string": [0, 1, 2, 3], "suppos": 0, "want": 0, "refer": [0, 1, 3], "server": 0, "host": 0, "could": [0, 2, 3], "base": [0, 2, 3], "default": [0, 1, 2, 3], "form": [0, 1, 2, 3], "case": [0, 2, 3], "server_hostbased_nam": 0, "f": 0, "name_typ": [0, 2, 3], "nametyp": [0, 2, 3], "hostbased_servic": [0, 2, 3], "b": 0, "seton": 0, "mivehind": 0, "net": 0, "oid": [0, 2, 3], "1": [0, 2, 3], "2": [0, 2, 3], "840": [0, 2], "113554": [0, 2], "4": [0, 2, 3], "server_nam": 0, "none": [0, 2, 3], "effect": 0, "same": [0, 1, 2, 3], "canonic": [0, 2, 3], "respect": [0, 2], "know": [0, 3], "re": 0, "fals": [0, 2, 3], "server_canon_nam": 0, "mechtyp": [0, 2, 3], "server_hostbased_canon_nam": 0, "true": [0, 2, 3], "compar": [0, 3], "should": [0, 2, 3], "them": [0, 2, 3], "first": [0, 3], "identif": 0, "In": [0, 2, 3], "order": [0, 3], "establish": [0, 1, 2, 3], "commun": 0, "other": [0, 1, 2, 4], "need": [0, 3], "For": [0, 2, 3], "handl": [0, 3], "tgt": 0, "mai": [0, 2, 3], "acquir": [0, 2], "particular": [0, 3], "instanc": [0, 3], "write": 0, "wish": [0, 2, 3], "accept": [0, 1, 2, 3], "connect": 0, "would": [0, 2, 3], "addprinc": 0, "": [0, 2, 3], "extract_keytab": 0, "keytab": [0, 3], "server_cr": 0, "usag": [0, 2, 3], "system": 0, "must": [0, 2, 3], "alreadi": [0, 3], "wai": [0, 2, 3], "access": [0, 4], "those": [0, 3], "mean": [0, 3], "kinit": 0, "cach": [0, 1, 3], "like": [0, 1, 2, 3, 5], "abov": [0, 2], "suffici": 0, "process": [0, 2, 3], "outsid": 0, "initi": [0, 1, 2, 3], "associ": [0, 2, 3], "lifetim": [0, 2, 3], "indefinit": [0, 2, 3], "usabl": 0, "mech": [0, 2], "each": [0, 1], "setabl": 0, "constructor": [0, 2, 3], "activ": 0, "session": [0, 3], "between": [0, 2, 3], "verifi": [0, 2, 3], "ident": 0, "well": [0, 1, 2, 3, 4], "ensur": [0, 2], "integr": [0, 3], "messag": [0, 2, 3], "sign": [0, 2, 3], "confidenti": [0, 2, 3], "encrypt": [0, 2, 3], "exchang": [0, 3], "parti": 0, "unless": [0, 2], "otherwis": [0, 2, 3], "specifi": [0, 2, 3], "allow": [0, 1, 2, 3], "client_ctx": 0, "securitycontext": [0, 2, 3], "initial_client_token": 0, "step": [0, 2], "complet": [0, 2, 3], "either": [0, 2, 3], "cannot": [0, 2, 3], "least": 0, "target": [0, 2, 3], "indic": [0, 1, 2, 3], "The": [0, 2, 3, 4], "server_ctx": 0, "cred": [0, 2, 3], "initial_server_token": 0, "As": [0, 3], "creat": [0, 2, 3], "similar": [0, 2, 5], "here": [0, 2], "although": 0, "option": [0, 2, 3], "let": [0, 3], "finish": [0, 3], "server_tok": 0, "client_tok": 0, "break": [0, 2], "now": 0, "wrap": [0, 2, 3], "unwrap": [0, 2, 3], "method": [0, 2, 3], "wrapped_messag": 0, "msg_encrypt": 0, "unwrapresult": [0, 2, 3], "qop": [0, 2, 3], "0": [0, 3], "second": [0, 2, 3], "paramet": [0, 2, 3], "control": [0, 1, 2, 3], "whether": [0, 2, 3], "signed_messag": 0, "manual": 0, "pass": [0, 2, 3], "check": [0, 3, 4, 6], "wa": [0, 2, 3], "get": [0, 2, 3, 4, 6], "tediou": 0, "so": [0, 3], "conveni": [0, 2], "help": 0, "decrypt": [0, 2, 3], "If": [0, 1, 2, 3], "call": [0, 1, 2, 3], "without": 0, "encrypted_messag": 0, "notic": 0, "except": 0, "rais": [0, 2, 3], "sinc": [0, 3], "_": 0, "traceback": 0, "recent": [0, 1], "last": [0, 3], "stdin": 0, "line": 0, "modul": [0, 2, 4], "usr": 0, "lib": 0, "python3": 0, "site": 0, "packag": [0, 4], "_util": 0, "167": 0, "check_last_err": 0, "return": [0, 2, 3], "func": 0, "self": 0, "arg": [0, 2, 3], "kwarg": [0, 2], "sec_context": [0, 3], "295": 0, "unwrapped_messag": [0, 2], "encryptionnotus": [0, 2], "request": [0, 2, 3], "There": [0, 3], "interpret": 0, "doc": 0, "pythonhost": 0, "more": [0, 1, 2, 3], "inform": [0, 2, 3], "introduc": 1, "implement": [1, 2, 3, 5], "gssapi": [1, 2, 3, 6], "It": [1, 2, 3], "finer": 1, "within": [1, 3], "defin": [1, 4], "keyword": 1, "manipul": 1, "variou": [1, 3], "aspect": [1, 3], "storag": 1, "retriev": [1, 2, 3], "oper": [1, 2, 3, 5], "number": [1, 3], "raw": [1, 2, 3, 4], "ext_cred_stor": 1, "acquire_cred_from": [1, 3], "add_cred_from": [1, 3], "custom": 1, "locat": 1, "client": [1, 3], "kei": [1, 2, 3], "context": 1, "residu": 1, "where": [1, 3], "understood": 1, "usual": 1, "someth": 1, "path": 1, "specif": [1, 2, 5], "sourc": [1, 2, 3], "exist": [1, 2, 3], "destin": 1, "store_cred_into": [1, 3], "dir": 1, "keyr": 1, "kcm": 1, "memori": 1, "format": [1, 2], "document": [1, 3, 4], "detail": [1, 2], "replai": 1, "onli": [1, 2, 3, 4], "howev": [1, 2, 3], "yet": 1, "present": [1, 2, 3, 4], "releas": [1, 3], "version": [1, 2, 3], "three": 2, "primari": 2, "abstract": 2, "inherit": 2, "low": [2, 4], "thu": [2, 3], "all": [2, 3], "throw": [2, 3], "gsserror": [2, 3], "byte": [2, 3], "str": [2, 3], "token": [2, 3], "composit": [2, 3], "bool": [2, 3], "A": [2, 3, 6], "pickl": 2, "unpickl": 2, "copi": [2, 3], "text": [2, 3], "automat": [2, 3], "convert": [2, 3], "unicod": 2, "appropri": [2, 3], "list": [2, 3], "encod": [2, 3], "utf": 2, "8": [2, 3], "human": [2, 3], "readabl": [2, 3], "represent": [2, 3], "argument": [2, 3], "export": 2, "new": [2, 3], "denot": 2, "badnametypeerror": [2, 3], "badnameerror": [2, 3], "badmechanismerror": [2, 3], "display_a": 2, "displai": [2, 3], "given": [2, 3], "attempt": [2, 3], "possibl": [2, 3], "mit": [2, 3], "below": 2, "13": [2, 3], "3": [2, 3], "segfault": 2, "origin": [2, 3], "even": [2, 3], "ad": [2, 3], "via": 2, "do": [2, 3], "sure": 2, "condit": 2, "never": 2, "happen": 2, "your": [2, 3], "code": [2, 3], "addit": 2, "warn": [2, 3], "actual": [2, 3], "fulli": [2, 3], "incorrect": 2, "result": 2, "requir": [2, 3], "rfc": [2, 4], "6680": 2, "extens": [2, 4, 5], "operationunavailableerror": [2, 3], "properti": [2, 3], "mechanismnamerequirederror": [2, 3], "accord": 2, "is_mech_nam": [2, 3], "attribut": 2, "mutablemap": 2, "dict": [2, 3], "valu": [2, 3, 5], "alwai": 2, "frozenset": 2, "assign": 2, "iter": [2, 3], "consid": 2, "non": [2, 3], "singl": [2, 3], "includ": [2, 3], "int": [2, 3], "store": [2, 5], "cred_imp_exp": 2, "per": 2, "expiredcredentialserror": [2, 3], "missingcredentialserror": [2, 3], "remain": [2, 3], "classmethod": [2, 3], "acquirecredresult": [2, 3], "dictionari": [2, 3], "point": [2, 3], "desir": [2, 3], "cred_stor": 2, "about": [2, 3], "overwrit": [2, 3], "set_default": [2, 3], "storecredresult": [2, 3], "5588": 2, "etc": [2, 3], "duplicatecredentialselementerror": [2, 3], "imperson": [2, 3], "anoth": [2, 3], "s4u": 2, "inquir": [2, 3], "inquirecredresult": [2, 3], "inspect": [2, 3], "invalidcredentialserror": [2, 3], "inquire_by_mech": 2, "init_lifetim": [2, 3], "accept_lifetim": [2, 3], "inquirecredbymechresult": [2, 3], "add": [2, 3], "work": [2, 3], "instead": [2, 3], "unlik": [2, 3], "compat": [2, 3], "newli": 2, "ones": 2, "often": 2, "flag": [2, 3], "channel_bind": [2, 3], "channelbind": [2, 3], "attach": 2, "deleg": 2, "preserv": [2, 3], "doe": [2, 3], "begin": 2, "detect": 2, "what": 2, "get_signatur": 2, "calcul": [2, 3], "signatur": 2, "mic": 2, "verify_signatur": 2, "confirm": 2, "valid": [2, 3], "transmit": [2, 3], "own": [2, 3], "input": [2, 3], "expiredcontexterror": [2, 3], "missingcontexterror": [2, 3], "badqoperror": [2, 3], "error": [2, 3], "badmicerror": [2, 3], "invalidtokenerror": [2, 3], "duplicatetokenerror": [2, 3], "expiredtokenerror": [2, 3], "tokentoolateerror": [2, 3], "tokentooearlyerror": [2, 3], "wrapresult": [2, 3], "g": [2, 3], "succesfulli": 2, "unencrypt": [2, 3], "along": 2, "wheter": 2, "similarli": [2, 3], "addition": [2, 3, 4], "directli": [2, 3, 5], "expect": [2, 3], "get_wrap_size_limit": 2, "desired_output_s": 2, "maximum": [2, 3], "size": [2, 3], "output": [2, 3], "taken": 2, "account": 2, "process_token": 2, "asynchron": [2, 3], "deprec": [2, 3], "amount": [2, 3], "time": [2, 3], "delegated_cr": [2, 3], "acceptor": [2, 3], "across": 2, "transfer": [2, 3], "initiator_nam": [2, 3], "target_nam": [2, 3], "actual_flag": 2, "locally_initi": 2, "local": [2, 3], "intiat": 2, "negoti": 2, "been": [2, 3], "negot": 2, "__defer_step_errors__": 2, "thrown": 2, "next": 2, "lookup": [2, 3], "behavior": 2, "loop": 2, "input_token": [2, 3], "ctx": 2, "output_token": 2, "send_and_rec": 2, "handle_the_issu": 2, "disabl": 2, "rare": 2, "necessari": 2, "send": [2, 3], "keep": 2, "end": 2, "updat": [2, 3], "statu": [2, 3], "particip": 2, "badchannelbindingserror": [2, 3], "follow": [2, 3, 6], "enumer": 2, "anonym": [2, 3], "6": [2, 3], "composite_export": [2, 3], "kerberos_princip": [2, 3], "krb5_nt_principal_nam": [2, 3], "machine_uid": [2, 3], "string_uid": [2, 3], "requirementflag": [2, 3], "qualnam": 2, "boundari": 2, "intenum": [2, 3], "ok_as_deleg": [2, 3], "c": [2, 3, 4], "gss_c_deleg_policy_flag": 2, "delegate_to_p": [2, 3], "kdc": 2, "polici": 2, "princip": [2, 3], "typic": 2, "microsoft": [2, 3], "domain": 2, "environ": [2, 3, 5], "constrain": 2, "unconstrain": 2, "By": 2, "behaviour": [2, 3], "sspi": [2, 3], "window": 2, "four": 2, "neither": 2, "No": 2, "occur": [2, 3], "regardless": 2, "success": 2, "trust": 2, "act": 2, "being": [2, 3], "addresstyp": [2, 3], "coupl": 2, "less": [2, 3], "sever": [2, 3, 4], "intenumflagset": [2, 3], "genericflagset": [2, 3], "maj_cod": [2, 3], "min_cod": [2, 3], "major": [2, 3], "maj_stat": 2, "maj_str": 2, "minor": [2, 3], "min_stat": 2, "min_str": 2, "gen_messag": [2, 3], "get_all_status": [2, 3], "is_maj": [2, 3], "generalerror": 2, "minor_messag": 2, "major_messag": 2, "fmt_str": 2, "maj": 2, "min": 2, "unknownusageerror": 2, "unknown": [2, 3], "unabl": [2, 3], "determin": [2, 3], "obj": 2, "routine_cod": [2, 3], "262144": 2, "393216": 2, "65536": 2, "131072": 2, "196608": 2, "917504": 2, "badstatuserror": [2, 3], "327680": 2, "contextreaderror": [2, 3], "parameterreaderror": [2, 3], "contextwriteerror": [2, 3], "parameterwriteerror": [2, 3], "credentialsreaderror": [2, 3], "credentialswriteerror": [2, 3], "1114112": 2, "supplementaryerror": [2, 3], "supplementary_cod": [2, 3], "786432": 2, "720896": 2, "655360": 2, "589824": 2, "malformedparametererror": [2, 3], "calling_cod": [2, 3], "50331648": 2, "1179648": 2, "524288": 2, "458752": 2, "namereaderror": [2, 3], "nametypereaderror": [2, 3], "1048576": 2, "16777216": 2, "33554432": 2, "tokenoutofsequenceerror": [2, 3], "tokenreaderror": [2, 3], "16": [2, 3], "unauthorizederror": [2, 3], "983040": 2, "set_encod": 2, "enc": [2, 3], "decod": 2, "varieti": 3, "map": 3, "basic": [3, 6], "class": 3, "underli": [3, 4], "struct": 3, "dealloc": 3, "itself": 3, "high": [3, 4], "section": [3, 5], "special": 3, "import_nam": 3, "take": 3, "display_nam": 3, "its": 3, "compon": 3, "back": 3, "question": 3, "displaynameresult": 3, "compare_nam": 3, "name1": 3, "name2": 3, "equival": 3, "equal": 3, "export_nam": 3, "produc": 3, "canon": 3, "contig": 3, "suitabl": 3, "direct": 3, "comparison": 3, "author": 3, "canonicalize_nam": 3, "accept_sec_context": 3, "arbitrari": 3, "turn": 3, "full": 3, "duplicate_nam": 3, "duplic": 3, "release_nam": 3, "free": 3, "probabl": 3, "won": 3, "t": 3, "freed": 3, "acquire_cr": 3, "mechanim": 3, "ttl": 3, "release_cr": 3, "add_cr": 3, "input_cr": 3, "mutate_input": 3, "element": 3, "compos": 3, "failsaf": 3, "mutat": 3, "addcredresult": 3, "inquire_cr": 3, "unus": 3, "field": 3, "inquire_cred_by_mech": 3, "init_sec_context": 3, "chan_bind": 3, "further": 3, "receiv": 3, "chang": 3, "mutual_authent": 3, "out_of_sequence_detect": 3, "channel": 3, "bind": 3, "initseccontextresult": 3, "acceptor_cr": 3, "sent": 3, "final": 3, "acceptseccontextresult": 3, "inquire_context": 3, "locally_init": 3, "obtain": 3, "state": 3, "open": 3, "v": 3, "close": 3, "gss_c_no_nam": 3, "inquirecontextresult": 3, "context_tim": 3, "expir": 3, "give": 3, "process_context_token": 3, "one": 3, "exampl": 3, "initseccontext": 3, "essenti": 3, "against": 3, "import_sec_context": 3, "export_sec_context": 3, "deactiv": 3, "modifi": 3, "delete_sec_context": 3, "local_onli": 3, "delet": 3, "holder": 3, "notifi": 3, "remot": 3, "get_mic": 3, "trasmit": 3, "bundl": 3, "togeth": 3, "qualiti": 3, "protect": 3, "verify_m": 3, "match": 3, "wrap_size_limit": 3, "output_s": 3, "max": 3, "depend": 3, "sender": 3, "consist": 3, "ber": 3, "hashabl": 3, "from_int_seq": 3, "integer_sequ": 3, "sequenc": 3, "integ": 3, "dot": 3, "valueerror": 3, "than": 3, "long": 3, "dotted_form": 3, "enum": 3, "regist": 3, "indicate_mech": 3, "found": 3, "skip": 3, "inquire_names_for_mech": 3, "inquire_mechs_for_nam": 3, "abl": 3, "caus": 3, "ellipsi": 3, "relat": 3, "behind": 3, "counterpart": 3, "replay_detect": 3, "32": 3, "64": 3, "protection_readi": 3, "128": 3, "256": 3, "channel_bound": 3, "2048": 3, "dce_styl": 3, "4096": 3, "8192": 3, "extended_error": 3, "16384": 3, "32768": 3, "address": 3, "structur": 3, "gss_c_af_unspec": 3, "ip": 3, "arpanet": 3, "pup": 3, "chao": 3, "xerox_n": 3, "nb": 3, "7": 3, "ecma": 3, "datakit": 3, "9": 3, "ccitt": 3, "10": 3, "ibm_sna": 3, "11": 3, "decnet": 3, "12": 3, "dli": 3, "lat": 3, "14": 3, "hyperchannel": 3, "15": 3, "appletalk": 3, "bisync": 3, "17": 3, "dss": 3, "18": 3, "osi_tp4": 3, "19": 3, "x25": 3, "21": 3, "null": 3, "255": 3, "bit": 3, "member": 3, "tradit": 3, "bitwis": 3, "AND": 3, "OR": 3, "xor": 3, "max_val": 3, "discard": 3, "remov": 3, "absent": 3, "exactli": 3, "initiator_address_typ": 3, "initiator_address": 3, "acceptor_address_typ": 3, "acceptor_address": 3, "application_data": 3, "data": 3, "particularli": 3, "compil": 3, "namespac": 3, "set_neg_mech": 3, "cred_handl": 3, "mech_set": 3, "impli": 3, "rel": 3, "prefer": 3, "indicate_mechs_by_attr": 3, "desired_mech_attr": 3, "except_mech_attr": 3, "critical_mech_attr": 3, "offer": 3, "NOT": 3, "understand": 3, "satisfi": 3, "criteria": 3, "inquire_attrs_for_mech": 3, "attr": 3, "known": 3, "inquiri": 3, "inquireattrsresult": 3, "display_mech_attr": 3, "descript": 3, "displayattrresult": 3, "store_cr": 3, "mechansim": 3, "inquire_saslname_for_mech": 3, "inquiresaslnameresult": 3, "failur": 3, "inquire_mech_for_saslnam": 3, "sasl_nam": 3, "dict_stor": 3, "common": [3, 5], "display_name_ext": 3, "inquire_nam": 3, "mech_nam": 3, "potenti": 3, "inquirenameresult": 3, "set_name_attribut": 3, "pseudo": 3, "continu": 3, "delete_name_attribut": 3, "clear": 3, "mark": 3, "get_name_attribut": 3, "variabl": 3, "authent": 3, "getnameattributeresult": 3, "unset": 3, "befor": 3, "make": [3, 4], "latter": 3, "certain": [3, 4], "export_name_composit": 3, "onc": 3, "export_cr": 3, "gsssapi": 3, "import_cr": 3, "previous": 3, "wrap_aead": 3, "go": 3, "total": 3, "unwrap_aead": 3, "encrpyt": 3, "goe": 3, "iovbuffertyp": 3, "buffer": 3, "empti": 3, "header": 3, "mech_param": 3, "trailer": 3, "pad": 3, "stream": 3, "sign_onli": 3, "mic_token": 3, "iovbuff": 3, "alloc": 3, "tupl": 3, "std_layout": 3, "auto_alloc": 3, "index": [3, 4], "count": 3, "wrap_iov": 3, "miovessag": 3, "unwrap_iov": 3, "uwrap": 3, "entir": 3, "former": 3, "iovunwrapresult": 3, "wrap_iov_length": 3, "length": 3, "comput": 3, "term": 3, "zero": 3, "get_mic_iov": 3, "ext_dc": 3, "place": 3, "noth": 3, "get_mic_iov_length": 3, "space": 3, "verify_mic_iov": 3, "extend": 3, "One": 3, "inquire_sec_context_by_oid": 3, "smb": 3, "protocol": 3, "draft": 3, "ietf": 3, "tool": 3, "html": 3, "engert": 3, "00": 3, "inquire_cred_by_oid": 3, "desired_aspect": 3, "queri": 3, "piec": 3, "gss_krb5_inq_sspi_session_key_oid": 3, "deriv": 3, "samba": 3, "set_sec_context_opt": 3, "how": 3, "reset": 3, "ntlm": 3, "crypto": 3, "engin": 3, "ntlmssp": 3, "7165": 3, "655": 3, "int32": 3, "gss_c_empty_buff": 3, "service4us": 3, "acquire_cred_impersonate_nam": 3, "impersonator_cr": 3, "s4u2self": 3, "proxi": 3, "permiss": 3, "add_cred_impersonate_nam": 3, "singular": 3, "acquirecredimpersonatenam": 3, "acquire_cred_with_password": 3, "solari": 3, "heimdal": 3, "credentialss": 3, "add_cred_with_password": 3, "krb5lucidcontext": 3, "krb5_export_lucid_sec_context": 3, "krb5lucidcontextv1": 3, "is_initi": 3, "endtim": 3, "send_seq": 3, "recv_seq": 3, "rfc1964_kd": 3, "cfx_kd": 3, "opposit": 3, "rfc1964": 3, "rfc4121": 3, "keydata": 3, "rfc1964keydata": 3, "cfxkeydata": 3, "krb5_ccache_nam": 3, "he": 3, "gss_c_no_credenti": 3, "old": 3, "ccach": 3, "thread": 3, "safe": 3, "revert": 3, "config": 3, "opaqu": 3, "intern": 3, "info": 3, "again": 3, "caller": 3, "after": 3, "krb5_extract_authtime_from_sec_context": 3, "auth": 3, "authtim": 3, "krb5_extract_authz_data_from_sec_context": 3, "ad_typ": 3, "extract": 3, "authz": 3, "sec": 3, "krb5_import_cr": 3, "keytab_princip": 3, "share": 3, "destroi": 3, "fail": 3, "krb5_ccach": 3, "pointer": 3, "krb5_princip": 3, "krb5_keytab": 3, "krb5_get_tkt_flag": 3, "ticket": 3, "tkt": 3, "krb5_set_allowable_enctyp": 3, "ktype": 3, "limit": 3, "restrict": 3, "enctyp": 3, "dure": 3, "establis": 3, "cred_hand": 3, "gss_set_cred_opt": 3, "gss_krb5_cred_no_ci_flags_x": 3, "interoper": 3, "lump": 3, "closest": 3, "william": 3, "kitten": 3, "bound": 3, "01": 3, "set_cred_opt": 3, "were": 3, "752": 3, "43": 3, "29": 3, "initialis": 3, "textual": 3, "appli": 3, "more_step": 3, "readi": 3, "is_name_mech": 3, "display_valu": 3, "mech_attr": 3, "known_mech_attr": 3, "short_desc": 3, "long_desc": 3, "sasl_mech_nam": 3, "mech_descript": 3, "informm": 3, "sign_alg": 3, "seal_alg": 3, "key_typ": 3, "algorithm": 3, "seal": 3, "ctx_key_typ": 3, "ctx_kei": 3, "acceptor_subkey_typ": 3, "acceptor_subkei": 3, "securti": 3, "sub": 3, "2744": 4, "organ": 4, "level": 4, "resid": 4, "orient": 4, "around": 4, "thin": 4, "page": 4, "jump": 4, "straight": 4, "search": 4, "express": 5, "quirk": 5, "issu": 5, "tip": 5, "influenc": 5, "credenti": 5, "introduct": 6}, "objects": {"": [[2, 0, 0, "-", "gssapi"]], "gssapi": [[2, 1, 1, "", "AddressType"], [2, 1, 1, "", "IntEnumFlagSet"], [2, 1, 1, "", "MechType"], [2, 1, 1, "", "NameType"], [2, 1, 1, "", "OID"], [2, 1, 1, "", "RequirementFlag"], [2, 0, 0, "-", "creds"], [2, 0, 0, "-", "exceptions"], [2, 0, 0, "-", "names"], [3, 0, 0, "-", "raw"], [2, 0, 0, "-", "sec_contexts"], [2, 6, 1, "", "set_encoding"]], "gssapi.MechType": [[2, 2, 1, "", "kerberos"]], "gssapi.NameType": [[2, 2, 1, "", "anonymous"], [2, 2, 1, "", "composite_export"], [2, 2, 1, "", "export"], [2, 2, 1, "", "hostbased_service"], [2, 2, 1, "", "kerberos_principal"], [2, 2, 1, "", "krb5_nt_principal_name"], [2, 2, 1, "", "machine_uid"], [2, 2, 1, "", "string_uid"], [2, 2, 1, "", "user"]], "gssapi.creds": [[2, 1, 1, "", "Credentials"]], "gssapi.creds.Credentials": [[2, 3, 1, "", "acquire"], [2, 3, 1, "", "add"], [2, 3, 1, "", "export"], [2, 3, 1, "", "impersonate"], [2, 3, 1, "", "inquire"], [2, 3, 1, "", "inquire_by_mech"], [2, 4, 1, "", "lifetime"], [2, 4, 1, "", "mechs"], [2, 4, 1, "", "name"], [2, 3, 1, "", "store"], [2, 4, 1, "", "usage"]], "gssapi.exceptions": [[2, 5, 1, "", "BadChannelBindingsError"], [2, 5, 1, "", "BadMICError"], [2, 5, 1, "", "BadMechanismError"], [2, 5, 1, "", "BadNameError"], [2, 5, 1, "", "BadNameTypeError"], [2, 5, 1, "", "BadQoPError"], [2, 5, 1, "", "BadStatusError"], [2, 5, 1, "", "ContextReadError"], [2, 5, 1, "", "ContextWriteError"], [2, 5, 1, "", "CredentialsReadError"], [2, 5, 1, "", "CredentialsWriteError"], [2, 5, 1, "", "DuplicateCredentialsElementError"], [2, 5, 1, "", "DuplicateTokenError"], [2, 5, 1, "", "EncryptionNotUsed"], [2, 5, 1, "", "ExpiredContextError"], [2, 5, 1, "", "ExpiredCredentialsError"], [2, 5, 1, "", "ExpiredTokenError"], [2, 5, 1, "", "GSSError"], [2, 5, 1, "", "GeneralError"], [2, 5, 1, "", "InvalidCredentialsError"], [2, 5, 1, "", "InvalidTokenError"], [2, 5, 1, "", "MalformedParameterError"], [2, 5, 1, "", "MechanismNameRequiredError"], [2, 5, 1, "", "MissingContextError"], [2, 5, 1, "", "MissingCredentialsError"], [2, 5, 1, "", "NameReadError"], [2, 5, 1, "", "NameTypeReadError"], [2, 5, 1, "", "OperationUnavailableError"], [2, 5, 1, "", "ParameterReadError"], [2, 5, 1, "", "ParameterWriteError"], [2, 5, 1, "", "SupplementaryError"], [2, 5, 1, "", "TokenOutOfSequenceError"], [2, 5, 1, "", "TokenReadError"], [2, 5, 1, "", "TokenTooEarlyError"], [2, 5, 1, "", "TokenTooLateError"], [2, 5, 1, "", "UnauthorizedError"], [2, 5, 1, "", "UnknownUsageError"]], "gssapi.exceptions.BadChannelBindingsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadMICError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadMechanismError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadNameError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadNameTypeError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadQoPError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadStatusError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.DuplicateCredentialsElementError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.DuplicateTokenError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.EncryptionNotUsed": [[2, 2, 1, "", "MAJOR_MESSAGE"]], "gssapi.exceptions.ExpiredContextError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.ExpiredCredentialsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.ExpiredTokenError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.GSSError": [[2, 2, 1, "", "MESSAGE"], [2, 3, 1, "", "gen_message"], [2, 3, 1, "", "get_all_statuses"]], "gssapi.exceptions.GeneralError": [[2, 2, 1, "", "FMT_STR"], [2, 2, 1, "", "MAJOR_MESSAGE"]], "gssapi.exceptions.InvalidCredentialsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.InvalidTokenError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.MalformedParameterError": [[2, 2, 1, "", "CALLING_CODE"]], "gssapi.exceptions.MechanismNameRequiredError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.MissingContextError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.MissingCredentialsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.OperationUnavailableError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.ParameterReadError": [[2, 2, 1, "", "CALLING_CODE"]], "gssapi.exceptions.ParameterWriteError": [[2, 2, 1, "", "CALLING_CODE"]], "gssapi.exceptions.TokenTooEarlyError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.TokenTooLateError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.UnauthorizedError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.UnknownUsageError": [[2, 2, 1, "", "MAJOR_MESSAGE"]], "gssapi.names": [[2, 1, 1, "", "Name"]], "gssapi.names.Name": [[2, 4, 1, "", "attributes"], [2, 3, 1, "", "canonicalize"], [2, 3, 1, "", "display_as"], [2, 3, 1, "", "export"], [2, 4, 1, "", "is_mech_name"], [2, 4, 1, "", "mech"], [2, 4, 1, "", "name_type"]], "gssapi.raw": [[3, 0, 0, "-", "chan_bindings"], [3, 0, 0, "-", "creds"], [3, 0, 0, "-", "exceptions"], [3, 0, 0, "-", "ext_cred_imp_exp"], [3, 0, 0, "-", "ext_cred_store"], [3, 0, 0, "-", "ext_dce"], [3, 0, 0, "-", "ext_ggf"], [3, 0, 0, "-", "ext_iov_mic"], [3, 0, 0, "-", "ext_krb5"], [3, 0, 0, "-", "ext_password"], [3, 0, 0, "-", "ext_password_add"], [3, 0, 0, "-", "ext_rfc4178"], [3, 0, 0, "-", "ext_rfc5587"], [3, 0, 0, "-", "ext_rfc5588"], [3, 0, 0, "-", "ext_rfc5801"], [3, 0, 0, "-", "ext_rfc6680"], [3, 0, 0, "-", "ext_s4u"], [3, 0, 0, "-", "ext_set_cred_opt"], [3, 0, 0, "-", "message"], [3, 0, 0, "-", "misc"], [3, 0, 0, "-", "named_tuples"], [3, 0, 0, "-", "names"], [3, 0, 0, "-", "oids"], [3, 0, 0, "-", "sec_contexts"], [3, 0, 0, "-", "types"]], "gssapi.raw.chan_bindings": [[3, 1, 1, "", "ChannelBindings"]], "gssapi.raw.chan_bindings.ChannelBindings": [[3, 2, 1, "", "acceptor_address"], [3, 2, 1, "", "acceptor_address_type"], [3, 2, 1, "", "application_data"], [3, 2, 1, "", "initiator_address"], [3, 2, 1, "", "initiator_address_type"]], "gssapi.raw.creds": [[3, 1, 1, "", "Creds"], [3, 6, 1, "", "acquire_cred"], [3, 6, 1, "", "add_cred"], [3, 6, 1, "", "inquire_cred"], [3, 6, 1, "", "inquire_cred_by_mech"], [3, 6, 1, "", "release_cred"]], "gssapi.raw.exceptions": [[3, 5, 1, "", "BadChannelBindingsError"], [3, 5, 1, "", "BadMICError"], [3, 5, 1, "", "BadMechanismError"], [3, 5, 1, "", "BadNameError"], [3, 5, 1, "", "BadNameTypeError"], [3, 5, 1, "", "BadQoPError"], [3, 5, 1, "", "BadStatusError"], [3, 5, 1, "", "ContextReadError"], [3, 5, 1, "", "ContextWriteError"], [3, 5, 1, "", "CredentialsReadError"], [3, 5, 1, "", "CredentialsWriteError"], [3, 5, 1, "", "DuplicateCredentialsElementError"], [3, 5, 1, "", "DuplicateTokenError"], [3, 5, 1, "", "ExpiredContextError"], [3, 5, 1, "", "ExpiredCredentialsError"], [3, 5, 1, "", "ExpiredTokenError"], [3, 5, 1, "", "GSSError"], [3, 5, 1, "", "InvalidCredentialsError"], [3, 5, 1, "", "InvalidTokenError"], [3, 5, 1, "", "MalformedParameterError"], [3, 5, 1, "", "MechanismNameRequiredError"], [3, 5, 1, "", "MissingContextError"], [3, 5, 1, "", "MissingCredentialsError"], [3, 5, 1, "", "NameReadError"], [3, 5, 1, "", "NameTypeReadError"], [3, 5, 1, "", "OperationUnavailableError"], [3, 5, 1, "", "ParameterReadError"], [3, 5, 1, "", "ParameterWriteError"], [3, 5, 1, "", "SupplementaryError"], [3, 5, 1, "", "TokenOutOfSequenceError"], [3, 5, 1, "", "TokenReadError"], [3, 5, 1, "", "TokenTooEarlyError"], [3, 5, 1, "", "TokenTooLateError"], [3, 5, 1, "", "UnauthorizedError"]], "gssapi.raw.exceptions.GSSError": [[3, 2, 1, "", "calling_code"], [3, 3, 1, "", "gen_message"], [3, 3, 1, "", "get_all_statuses"], [3, 2, 1, "", "maj_code"], [3, 2, 1, "", "min_code"], [3, 2, 1, "", "routine_code"], [3, 2, 1, "", "supplementary_code"], [3, 2, 1, "", "token"]], "gssapi.raw.ext_cred_imp_exp": [[3, 6, 1, "", "export_cred"], [3, 6, 1, "", "import_cred"]], "gssapi.raw.ext_cred_store": [[3, 6, 1, "", "acquire_cred_from"], [3, 6, 1, "", "add_cred_from"], [3, 6, 1, "", "store_cred_into"]], "gssapi.raw.ext_dce": [[3, 1, 1, "", "IOV"], [3, 1, 1, "", "IOVBuffer"], [3, 1, 1, "", "IOVBufferType"], [3, 6, 1, "", "unwrap_aead"], [3, 6, 1, "", "unwrap_iov"], [3, 6, 1, "", "wrap_aead"], [3, 6, 1, "", "wrap_iov"], [3, 6, 1, "", "wrap_iov_length"]], "gssapi.raw.ext_dce.IOV": [[3, 3, 1, "", "count"], [3, 3, 1, "", "index"]], "gssapi.raw.ext_dce.IOVBuffer": [[3, 2, 1, "", "allocate"], [3, 2, 1, "", "type"], [3, 2, 1, "", "value"]], "gssapi.raw.ext_dce.IOVBufferType": [[3, 2, 1, "", "data"], [3, 2, 1, "", "empty"], [3, 2, 1, "", "header"], [3, 2, 1, "", "mech_params"], [3, 2, 1, "", "mic_token"], [3, 2, 1, "", "padding"], [3, 2, 1, "", "sign_only"], [3, 2, 1, "", "stream"], [3, 2, 1, "", "trailer"]], "gssapi.raw.ext_ggf": [[3, 6, 1, "", "inquire_cred_by_oid"], [3, 6, 1, "", "inquire_sec_context_by_oid"], [3, 6, 1, "", "set_sec_context_option"]], "gssapi.raw.ext_iov_mic": [[3, 6, 1, "", "get_mic_iov"], [3, 6, 1, "", "get_mic_iov_length"], [3, 6, 1, "", "verify_mic_iov"]], "gssapi.raw.ext_krb5": [[3, 1, 1, "", "Krb5LucidContext"], [3, 1, 1, "", "Krb5LucidContextV1"], [3, 6, 1, "", "krb5_ccache_name"], [3, 6, 1, "", "krb5_export_lucid_sec_context"], [3, 6, 1, "", "krb5_extract_authtime_from_sec_context"], [3, 6, 1, "", "krb5_extract_authz_data_from_sec_context"], [3, 6, 1, "", "krb5_get_tkt_flags"], [3, 6, 1, "", "krb5_import_cred"], [3, 6, 1, "", "krb5_set_allowable_enctypes"]], "gssapi.raw.ext_krb5.Krb5LucidContextV1": [[3, 4, 1, "", "cfx_kd"], [3, 4, 1, "", "endtime"], [3, 4, 1, "", "is_initiator"], [3, 4, 1, "", "protocol"], [3, 4, 1, "", "recv_seq"], [3, 4, 1, "", "rfc1964_kd"], [3, 4, 1, "", "send_seq"], [3, 4, 1, "", "version"]], "gssapi.raw.ext_password": [[3, 6, 1, "", "acquire_cred_with_password"]], "gssapi.raw.ext_password_add": [[3, 6, 1, "", "add_cred_with_password"]], "gssapi.raw.ext_rfc4178": [[3, 6, 1, "", "set_neg_mechs"]], "gssapi.raw.ext_rfc5587": [[3, 6, 1, "", "display_mech_attr"], [3, 6, 1, "", "indicate_mechs_by_attrs"], [3, 6, 1, "", "inquire_attrs_for_mech"]], "gssapi.raw.ext_rfc5588": [[3, 6, 1, "", "store_cred"]], "gssapi.raw.ext_rfc5801": [[3, 6, 1, "", "inquire_mech_for_saslname"], [3, 6, 1, "", "inquire_saslname_for_mech"]], "gssapi.raw.ext_rfc6680": [[3, 6, 1, "", "delete_name_attribute"], [3, 6, 1, "", "display_name_ext"], [3, 6, 1, "", "export_name_composite"], [3, 6, 1, "", "get_name_attribute"], [3, 6, 1, "", "inquire_name"], [3, 6, 1, "", "set_name_attribute"]], "gssapi.raw.ext_s4u": [[3, 6, 1, "", "acquire_cred_impersonate_name"], [3, 6, 1, "", "add_cred_impersonate_name"]], "gssapi.raw.ext_set_cred_opt": [[3, 6, 1, "", "set_cred_option"]], "gssapi.raw.message": [[3, 6, 1, "", "get_mic"], [3, 6, 1, "", "unwrap"], [3, 6, 1, "", "verify_mic"], [3, 6, 1, "", "wrap"], [3, 6, 1, "", "wrap_size_limit"]], "gssapi.raw.misc": [[3, 5, 1, "", "GSSError"], [3, 1, 1, "", "MechType"], [3, 1, 1, "", "Name"], [3, 1, 1, "", "OID"], [3, 6, 1, "", "indicate_mechs"], [3, 6, 1, "", "inquire_mechs_for_name"], [3, 6, 1, "", "inquire_names_for_mech"]], "gssapi.raw.misc.GSSError": [[3, 2, 1, "", "calling_code"], [3, 3, 1, "", "gen_message"], [3, 3, 1, "", "get_all_statuses"], [3, 2, 1, "", "maj_code"], [3, 2, 1, "", "min_code"], [3, 2, 1, "", "routine_code"], [3, 2, 1, "", "supplementary_code"], [3, 2, 1, "", "token"]], "gssapi.raw.misc.MechType": [[3, 2, 1, "", "kerberos"]], "gssapi.raw.misc.OID": [[3, 4, 1, "", "dotted_form"], [3, 3, 1, "", "from_int_seq"]], "gssapi.raw.named_tuples": [[3, 1, 1, "", "AcceptSecContextResult"], [3, 1, 1, "", "AcquireCredResult"], [3, 1, 1, "", "AddCredResult"], [3, 1, 1, "", "CfxKeyData"], [3, 1, 1, "", "DisplayAttrResult"], [3, 1, 1, "", "DisplayNameResult"], [3, 1, 1, "", "GetNameAttributeResult"], [3, 1, 1, "", "IOVUnwrapResult"], [3, 1, 1, "", "InitSecContextResult"], [3, 1, 1, "", "InquireAttrsResult"], [3, 1, 1, "", "InquireContextResult"], [3, 1, 1, "", "InquireCredByMechResult"], [3, 1, 1, "", "InquireCredResult"], [3, 1, 1, "", "InquireNameResult"], [3, 1, 1, "", "InquireSASLNameResult"], [3, 1, 1, "", "Rfc1964KeyData"], [3, 1, 1, "", "StoreCredResult"], [3, 1, 1, "", "UnwrapResult"], [3, 1, 1, "", "WrapResult"]], "gssapi.raw.named_tuples.AcceptSecContextResult": [[3, 2, 1, "", "context"], [3, 2, 1, "", "delegated_creds"], [3, 2, 1, "", "flags"], [3, 2, 1, "", "initiator_name"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mech"], [3, 2, 1, "", "more_steps"], [3, 2, 1, "", "token"]], "gssapi.raw.named_tuples.AcquireCredResult": [[3, 2, 1, "", "creds"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mechs"]], "gssapi.raw.named_tuples.AddCredResult": [[3, 2, 1, "", "accept_lifetime"], [3, 2, 1, "", "creds"], [3, 2, 1, "", "init_lifetime"], [3, 2, 1, "", "mechs"]], "gssapi.raw.named_tuples.CfxKeyData": [[3, 2, 1, "", "acceptor_subkey"], [3, 2, 1, "", "acceptor_subkey_type"], [3, 2, 1, "", "ctx_key"], [3, 2, 1, "", "ctx_key_type"]], "gssapi.raw.named_tuples.DisplayAttrResult": [[3, 2, 1, "", "long_desc"], [3, 2, 1, "", "name"], [3, 2, 1, "", "short_desc"]], "gssapi.raw.named_tuples.DisplayNameResult": [[3, 2, 1, "", "name"], [3, 2, 1, "", "name_type"]], "gssapi.raw.named_tuples.GetNameAttributeResult": [[3, 2, 1, "", "authenticated"], [3, 2, 1, "", "complete"], [3, 2, 1, "", "display_values"], [3, 2, 1, "", "values"]], "gssapi.raw.named_tuples.IOVUnwrapResult": [[3, 2, 1, "", "encrypted"], [3, 2, 1, "", "qop"]], "gssapi.raw.named_tuples.InitSecContextResult": [[3, 2, 1, "", "context"], [3, 2, 1, "", "flags"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mech"], [3, 2, 1, "", "more_steps"], [3, 2, 1, "", "token"]], "gssapi.raw.named_tuples.InquireAttrsResult": [[3, 2, 1, "", "known_mech_attrs"], [3, 2, 1, "", "mech_attrs"]], "gssapi.raw.named_tuples.InquireContextResult": [[3, 2, 1, "", "complete"], [3, 2, 1, "", "flags"], [3, 2, 1, "", "initiator_name"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "locally_init"], [3, 2, 1, "", "mech"], [3, 2, 1, "", "target_name"]], "gssapi.raw.named_tuples.InquireCredByMechResult": [[3, 2, 1, "", "accept_lifetime"], [3, 2, 1, "", "init_lifetime"], [3, 2, 1, "", "name"], [3, 2, 1, "", "usage"]], "gssapi.raw.named_tuples.InquireCredResult": [[3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mechs"], [3, 2, 1, "", "name"], [3, 2, 1, "", "usage"]], "gssapi.raw.named_tuples.InquireNameResult": [[3, 2, 1, "", "attrs"], [3, 2, 1, "", "is_mech_name"], [3, 2, 1, "", "mech"]], "gssapi.raw.named_tuples.InquireSASLNameResult": [[3, 2, 1, "", "mech_description"], [3, 2, 1, "", "mech_name"], [3, 2, 1, "", "sasl_mech_name"]], "gssapi.raw.named_tuples.Rfc1964KeyData": [[3, 2, 1, "", "key"], [3, 2, 1, "", "key_type"], [3, 2, 1, "", "seal_alg"], [3, 2, 1, "", "sign_alg"]], "gssapi.raw.named_tuples.StoreCredResult": [[3, 2, 1, "", "mechs"], [3, 2, 1, "", "usage"]], "gssapi.raw.named_tuples.UnwrapResult": [[3, 2, 1, "", "encrypted"], [3, 2, 1, "", "message"], [3, 2, 1, "", "qop"]], "gssapi.raw.named_tuples.WrapResult": [[3, 2, 1, "", "encrypted"], [3, 2, 1, "", "message"]], "gssapi.raw.names": [[3, 1, 1, "", "Name"], [3, 6, 1, "", "canonicalize_name"], [3, 6, 1, "", "compare_name"], [3, 6, 1, "", "display_name"], [3, 6, 1, "", "duplicate_name"], [3, 6, 1, "", "export_name"], [3, 6, 1, "", "import_name"], [3, 6, 1, "", "release_name"]], "gssapi.raw.oids": [[3, 1, 1, "", "OID"]], "gssapi.raw.oids.OID": [[3, 4, 1, "", "dotted_form"], [3, 3, 1, "", "from_int_seq"]], "gssapi.raw.sec_contexts": [[3, 1, 1, "", "SecurityContext"], [3, 6, 1, "", "accept_sec_context"], [3, 6, 1, "", "context_time"], [3, 6, 1, "", "delete_sec_context"], [3, 6, 1, "", "export_sec_context"], [3, 6, 1, "", "import_sec_context"], [3, 6, 1, "", "init_sec_context"], [3, 6, 1, "", "inquire_context"], [3, 6, 1, "", "process_context_token"]], "gssapi.raw.types": [[3, 1, 1, "", "AddressType"], [3, 1, 1, "", "GenericFlagSet"], [3, 1, 1, "", "IntEnumFlagSet"], [3, 1, 1, "", "MechType"], [3, 1, 1, "", "NameType"], [3, 1, 1, "", "RequirementFlag"]], "gssapi.raw.types.AddressType": [[3, 2, 1, "", "appletalk"], [3, 2, 1, "", "arpanet"], [3, 2, 1, "", "bisync"], [3, 2, 1, "", "ccitt"], [3, 2, 1, "", "chaos"], [3, 2, 1, "", "datakit"], [3, 2, 1, "", "decnet"], [3, 2, 1, "", "dli"], [3, 2, 1, "", "dss"], [3, 2, 1, "", "ecma"], [3, 2, 1, "", "hyperchannel"], [3, 2, 1, "", "ibm_sna"], [3, 2, 1, "", "ip"], [3, 2, 1, "", "lat"], [3, 2, 1, "", "local"], [3, 2, 1, "", "nbs"], [3, 2, 1, "", "null"], [3, 2, 1, "", "osi_tp4"], [3, 2, 1, "", "pup"], [3, 2, 1, "", "x25"], [3, 2, 1, "", "xerox_ns"]], "gssapi.raw.types.GenericFlagSet": [[3, 2, 1, "", "MAX_VAL"], [3, 3, 1, "", "add"], [3, 3, 1, "", "discard"]], "gssapi.raw.types.MechType": [[3, 2, 1, "", "kerberos"]], "gssapi.raw.types.NameType": [[3, 2, 1, "", "anonymous"], [3, 2, 1, "", "composite_export"], [3, 2, 1, "", "export"], [3, 2, 1, "", "hostbased_service"], [3, 2, 1, "", "kerberos_principal"], [3, 2, 1, "", "krb5_nt_principal_name"], [3, 2, 1, "", "machine_uid"], [3, 2, 1, "", "string_uid"], [3, 2, 1, "", "user"]], "gssapi.raw.types.RequirementFlag": [[3, 2, 1, "", "anonymity"], [3, 2, 1, "", "channel_bound"], [3, 2, 1, "", "confidentiality"], [3, 2, 1, "", "dce_style"], [3, 2, 1, "", "delegate_to_peer"], [3, 2, 1, "", "extended_error"], [3, 2, 1, "", "identify"], [3, 2, 1, "", "integrity"], [3, 2, 1, "", "mutual_authentication"], [3, 2, 1, "", "ok_as_delegate"], [3, 2, 1, "", "out_of_sequence_detection"], [3, 2, 1, "", "protection_ready"], [3, 2, 1, "", "replay_detection"], [3, 2, 1, "", "transferable"]], "gssapi.sec_contexts": [[2, 1, 1, "", "SecurityContext"]], "gssapi.sec_contexts.SecurityContext": [[2, 4, 1, "", "actual_flags"], [2, 4, 1, "", "complete"], [2, 3, 1, "", "decrypt"], [2, 4, 1, "", "delegated_creds"], [2, 3, 1, "", "encrypt"], [2, 3, 1, "", "export"], [2, 3, 1, "", "get_signature"], [2, 3, 1, "", "get_wrap_size_limit"], [2, 4, 1, "", "initiator_name"], [2, 4, 1, "", "lifetime"], [2, 4, 1, "", "locally_initiated"], [2, 4, 1, "", "mech"], [2, 3, 1, "", "process_token"], [2, 3, 1, "", "step"], [2, 4, 1, "", "target_name"], [2, 3, 1, "", "unwrap"], [2, 3, 1, "", "verify_signature"], [2, 3, 1, "", "wrap"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:exception", "6": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "exception", "Python exception"], "6": ["py", "function", "Python function"]}, "titleterms": {"A": 0, "basic": 0, "introduct": 0, "gssapi": [0, 4], "name": [0, 2, 3], "credenti": [0, 1, 2, 3], "secur": [0, 2, 3], "context": [0, 2, 3], "common": 1, "valu": 1, "store": [1, 3], "extens": [1, 3], "The": 1, "krb5": 1, "mechan": [1, 3], "mit": 1, "librari": 1, "client_keytab": 1, "keytab": 1, "ccach": 1, "rcach": 1, "heimdal": 1, "high": 2, "level": [2, 3], "api": [2, 3], "main": 2, "class": 2, "enum": 2, "helper": 2, "except": [2, 3], "util": 2, "low": 3, "core": 3, "rfc": 3, "2744": 3, "misc": 3, "addit": 3, "4178": 3, "gss": 3, "negoti": 3, "5587": 3, "mech": 3, "attribut": 3, "5588": 3, "deleg": 3, "5801": 3, "sasl": 3, "6680": 3, "import": 3, "export": 3, "dce": 3, "iov": 3, "aead": 3, "mic": 3, "global": 3, "grid": 3, "forum": 3, "ggf": 3, "services4us": 3, "acquir": 3, "With": 3, "password": 3, "kerbero": 3, "specif": 3, "other": [3, 5], "result": 3, "python": 4, "bind": 4, "indic": 4, "tabl": 4, "document": 5, "tutori": 6}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"A Basic Introduction to GSSAPI": [[0, "a-basic-introduction-to-gssapi"]], "Names and Credentials": [[0, "names-and-credentials"]], "Security Contexts": [[0, "security-contexts"], [2, "module-gssapi.sec_contexts"], [3, "module-gssapi.raw.sec_contexts"]], "Common Values for Credentials Store Extensions": [[1, "common-values-for-credentials-store-extensions"]], "The krb5 mechanism in MIT libraries": [[1, "the-krb5-mechanism-in-mit-libraries"]], "client_keytab": [[1, "client-keytab"]], "keytab": [[1, "keytab"]], "ccache": [[1, "ccache"]], "rcache": [[1, "rcache"]], "The krb5 mechanism in Heimdal": [[1, "the-krb5-mechanism-in-heimdal"]], "High-Level API": [[2, "module-gssapi"]], "Main Classes": [[2, "main-classes"]], "Names": [[2, "module-gssapi.names"], [3, "names"]], "Credentials": [[2, "module-gssapi.creds"], [3, "module-gssapi.raw.creds"]], "Enums and Helper Classes": [[2, "enums-and-helper-classes"]], "Exceptions": [[2, "exceptions"], [3, "module-gssapi.raw.exceptions"]], "Utilities": [[2, "utilities"]], "Low-Level API": [[3, "module-gssapi.raw"]], "Core RFC 2744": [[3, "core-rfc-2744"]], "Misc": [[3, "module-gssapi.raw.oids"]], "Additional RFCs and Extensions": [[3, "additional-rfcs-and-extensions"]], "RFC 4178 (GSS-API Negotiation Mechanism)": [[3, "module-gssapi.raw.ext_rfc4178"]], "RFC 5587 (GSS-API Extension for Mech Attributes)": [[3, "module-gssapi.raw.ext_rfc5587"]], "RFC 5588 (GSS-API Extension for Storing Delegated Credentials)": [[3, "module-gssapi.raw.ext_rfc5588"]], "RFC 5801 (GSS-API SASL Extensions)": [[3, "module-gssapi.raw.ext_rfc5801"]], "Credential Store Extensions": [[3, "module-gssapi.raw.ext_cred_store"]], "RFC 6680 (GSS-API Naming Extensions)": [[3, "module-gssapi.raw.ext_rfc6680"]], "Credentials Import-Export Extensions": [[3, "module-gssapi.raw.ext_cred_imp_exp"]], "DCE (IOV/AEAD) Extensions": [[3, "module-gssapi.raw.ext_dce"]], "IOV MIC Extensions": [[3, "module-gssapi.raw.ext_iov_mic"]], "Global Grid Forum (GGF) Extensions": [[3, "module-gssapi.raw.ext_ggf"]], "Services4User Extensions": [[3, "module-gssapi.raw.ext_s4u"]], "Acquiring Credentials With a Password Extensions": [[3, "module-gssapi.raw.ext_password"]], "Kerberos Specific Extensions": [[3, "module-gssapi.raw.ext_krb5"]], "Other Extensions": [[3, "module-gssapi.raw.ext_set_cred_opt"]], "Results": [[3, "results"]], "Python-GSSAPI: Python bindings for GSSAPI": [[4, "python-gssapi-python-bindings-for-gssapi"]], "Indices and tables": [[4, "indices-and-tables"]], "Other Documentation": [[5, "other-documentation"]], "Tutorials": [[6, "tutorials"]]}, "indexentries": {"addresstype (class in gssapi)": [[2, "gssapi.AddressType"]], "badchannelbindingserror": [[2, "gssapi.exceptions.BadChannelBindingsError"], [3, "gssapi.raw.exceptions.BadChannelBindingsError"]], "badmicerror": [[2, "gssapi.exceptions.BadMICError"], [3, "gssapi.raw.exceptions.BadMICError"]], "badmechanismerror": [[2, "gssapi.exceptions.BadMechanismError"], [3, "gssapi.raw.exceptions.BadMechanismError"]], "badnameerror": [[2, "gssapi.exceptions.BadNameError"], [3, "gssapi.raw.exceptions.BadNameError"]], "badnametypeerror": [[2, "gssapi.exceptions.BadNameTypeError"], [3, "gssapi.raw.exceptions.BadNameTypeError"]], "badqoperror": [[2, "gssapi.exceptions.BadQoPError"], [3, "gssapi.raw.exceptions.BadQoPError"]], "badstatuserror": [[2, "gssapi.exceptions.BadStatusError"], [3, "gssapi.raw.exceptions.BadStatusError"]], "calling_code (malformedparametererror attribute)": [[2, "gssapi.exceptions.MalformedParameterError.CALLING_CODE"]], "calling_code (parameterreaderror attribute)": [[2, "gssapi.exceptions.ParameterReadError.CALLING_CODE"]], "calling_code (parameterwriteerror attribute)": [[2, "gssapi.exceptions.ParameterWriteError.CALLING_CODE"]], "contextreaderror": [[2, "gssapi.exceptions.ContextReadError"], [3, "gssapi.raw.exceptions.ContextReadError"]], "contextwriteerror": [[2, "gssapi.exceptions.ContextWriteError"], [3, "gssapi.raw.exceptions.ContextWriteError"]], "credentials (class in gssapi.creds)": [[2, "gssapi.creds.Credentials"]], "credentialsreaderror": [[2, "gssapi.exceptions.CredentialsReadError"], [3, "gssapi.raw.exceptions.CredentialsReadError"]], "credentialswriteerror": [[2, "gssapi.exceptions.CredentialsWriteError"], [3, "gssapi.raw.exceptions.CredentialsWriteError"]], "duplicatecredentialselementerror": [[2, "gssapi.exceptions.DuplicateCredentialsElementError"], [3, "gssapi.raw.exceptions.DuplicateCredentialsElementError"]], "duplicatetokenerror": [[2, "gssapi.exceptions.DuplicateTokenError"], [3, "gssapi.raw.exceptions.DuplicateTokenError"]], "encryptionnotused": [[2, "gssapi.exceptions.EncryptionNotUsed"]], "expiredcontexterror": [[2, "gssapi.exceptions.ExpiredContextError"], [3, "gssapi.raw.exceptions.ExpiredContextError"]], "expiredcredentialserror": [[2, "gssapi.exceptions.ExpiredCredentialsError"], [3, "gssapi.raw.exceptions.ExpiredCredentialsError"]], "expiredtokenerror": [[2, "gssapi.exceptions.ExpiredTokenError"], [3, "gssapi.raw.exceptions.ExpiredTokenError"]], "fmt_str (generalerror attribute)": [[2, "gssapi.exceptions.GeneralError.FMT_STR"]], "gsserror": [[2, "gssapi.exceptions.GSSError"], [3, "gssapi.raw.exceptions.GSSError"], [3, "gssapi.raw.misc.GSSError"]], "generalerror": [[2, "gssapi.exceptions.GeneralError"]], "intenumflagset (class in gssapi)": [[2, "gssapi.IntEnumFlagSet"]], "invalidcredentialserror": [[2, "gssapi.exceptions.InvalidCredentialsError"], [3, "gssapi.raw.exceptions.InvalidCredentialsError"]], "invalidtokenerror": [[2, "gssapi.exceptions.InvalidTokenError"], [3, "gssapi.raw.exceptions.InvalidTokenError"]], "major_message (encryptionnotused attribute)": [[2, "gssapi.exceptions.EncryptionNotUsed.MAJOR_MESSAGE"]], "major_message (generalerror attribute)": [[2, "gssapi.exceptions.GeneralError.MAJOR_MESSAGE"]], "major_message (unknownusageerror attribute)": [[2, "gssapi.exceptions.UnknownUsageError.MAJOR_MESSAGE"]], "message (gsserror attribute)": [[2, "gssapi.exceptions.GSSError.MESSAGE"]], "malformedparametererror": [[2, "gssapi.exceptions.MalformedParameterError"], [3, "gssapi.raw.exceptions.MalformedParameterError"]], "mechtype (class in gssapi)": [[2, "gssapi.MechType"]], "mechanismnamerequirederror": [[2, "gssapi.exceptions.MechanismNameRequiredError"], [3, "gssapi.raw.exceptions.MechanismNameRequiredError"]], "missingcontexterror": [[2, "gssapi.exceptions.MissingContextError"], [3, "gssapi.raw.exceptions.MissingContextError"]], "missingcredentialserror": [[2, "gssapi.exceptions.MissingCredentialsError"], [3, "gssapi.raw.exceptions.MissingCredentialsError"]], "name (class in gssapi.names)": [[2, "gssapi.names.Name"]], "namereaderror": [[2, "gssapi.exceptions.NameReadError"], [3, "gssapi.raw.exceptions.NameReadError"]], "nametype (class in gssapi)": [[2, "gssapi.NameType"]], "nametypereaderror": [[2, "gssapi.exceptions.NameTypeReadError"], [3, "gssapi.raw.exceptions.NameTypeReadError"]], "oid (class in gssapi)": [[2, "gssapi.OID"]], "operationunavailableerror": [[2, "gssapi.exceptions.OperationUnavailableError"], [3, "gssapi.raw.exceptions.OperationUnavailableError"]], "parameterreaderror": [[2, "gssapi.exceptions.ParameterReadError"], [3, "gssapi.raw.exceptions.ParameterReadError"]], "parameterwriteerror": [[2, "gssapi.exceptions.ParameterWriteError"], [3, "gssapi.raw.exceptions.ParameterWriteError"]], "rfc": [[2, "index-0"], [3, "index-0"], [3, "index-1"], [3, "index-2"], [3, "index-3"], [3, "index-4"], [3, "index-5"], [4, "index-0"]], "rfc 5588": [[2, "index-0"], [3, "index-3"]], "routine_code (badchannelbindingserror attribute)": [[2, "gssapi.exceptions.BadChannelBindingsError.ROUTINE_CODE"]], "routine_code (badmicerror attribute)": [[2, "gssapi.exceptions.BadMICError.ROUTINE_CODE"]], "routine_code (badmechanismerror attribute)": [[2, "gssapi.exceptions.BadMechanismError.ROUTINE_CODE"]], "routine_code (badnameerror attribute)": [[2, "gssapi.exceptions.BadNameError.ROUTINE_CODE"]], "routine_code (badnametypeerror attribute)": [[2, "gssapi.exceptions.BadNameTypeError.ROUTINE_CODE"]], "routine_code (badqoperror attribute)": [[2, "gssapi.exceptions.BadQoPError.ROUTINE_CODE"]], "routine_code (badstatuserror attribute)": [[2, "gssapi.exceptions.BadStatusError.ROUTINE_CODE"]], "routine_code (duplicatecredentialselementerror attribute)": [[2, "gssapi.exceptions.DuplicateCredentialsElementError.ROUTINE_CODE"]], "routine_code (expiredcontexterror attribute)": [[2, "gssapi.exceptions.ExpiredContextError.ROUTINE_CODE"]], "routine_code (expiredcredentialserror attribute)": [[2, "gssapi.exceptions.ExpiredCredentialsError.ROUTINE_CODE"]], "routine_code (invalidcredentialserror attribute)": [[2, "gssapi.exceptions.InvalidCredentialsError.ROUTINE_CODE"]], "routine_code (invalidtokenerror attribute)": [[2, "gssapi.exceptions.InvalidTokenError.ROUTINE_CODE"]], "routine_code (mechanismnamerequirederror attribute)": [[2, "gssapi.exceptions.MechanismNameRequiredError.ROUTINE_CODE"]], "routine_code (missingcontexterror attribute)": [[2, "gssapi.exceptions.MissingContextError.ROUTINE_CODE"]], "routine_code (missingcredentialserror attribute)": [[2, "gssapi.exceptions.MissingCredentialsError.ROUTINE_CODE"]], "routine_code (operationunavailableerror attribute)": [[2, "gssapi.exceptions.OperationUnavailableError.ROUTINE_CODE"]], "routine_code (unauthorizederror attribute)": [[2, "gssapi.exceptions.UnauthorizedError.ROUTINE_CODE"]], "requirementflag (class in gssapi)": [[2, "gssapi.RequirementFlag"]], "supplementary_code (duplicatetokenerror attribute)": [[2, "gssapi.exceptions.DuplicateTokenError.SUPPLEMENTARY_CODE"]], "supplementary_code (expiredtokenerror attribute)": [[2, "gssapi.exceptions.ExpiredTokenError.SUPPLEMENTARY_CODE"]], "supplementary_code (tokentooearlyerror attribute)": [[2, "gssapi.exceptions.TokenTooEarlyError.SUPPLEMENTARY_CODE"]], "supplementary_code (tokentoolateerror attribute)": [[2, "gssapi.exceptions.TokenTooLateError.SUPPLEMENTARY_CODE"]], "securitycontext (class in gssapi.sec_contexts)": [[2, "gssapi.sec_contexts.SecurityContext"]], "supplementaryerror": [[2, "gssapi.exceptions.SupplementaryError"], [3, "gssapi.raw.exceptions.SupplementaryError"]], "tokenoutofsequenceerror": [[2, "gssapi.exceptions.TokenOutOfSequenceError"], [3, "gssapi.raw.exceptions.TokenOutOfSequenceError"]], "tokenreaderror": [[2, "gssapi.exceptions.TokenReadError"], [3, "gssapi.raw.exceptions.TokenReadError"]], "tokentooearlyerror": [[2, "gssapi.exceptions.TokenTooEarlyError"], [3, "gssapi.raw.exceptions.TokenTooEarlyError"]], "tokentoolateerror": [[2, "gssapi.exceptions.TokenTooLateError"], [3, "gssapi.raw.exceptions.TokenTooLateError"]], "unauthorizederror": [[2, "gssapi.exceptions.UnauthorizedError"], [3, "gssapi.raw.exceptions.UnauthorizedError"]], "unknownusageerror": [[2, "gssapi.exceptions.UnknownUsageError"]], "acquire() (credentials class method)": [[2, "gssapi.creds.Credentials.acquire"]], "actual_flags (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.actual_flags"]], "add() (credentials method)": [[2, "gssapi.creds.Credentials.add"]], "anonymous (nametype attribute)": [[2, "gssapi.NameType.anonymous"], [3, "gssapi.raw.types.NameType.anonymous"]], "attributes (name property)": [[2, "gssapi.names.Name.attributes"]], "canonicalize() (name method)": [[2, "gssapi.names.Name.canonicalize"]], "complete (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.complete"]], "composite_export (nametype attribute)": [[2, "gssapi.NameType.composite_export"], [3, "gssapi.raw.types.NameType.composite_export"]], "decrypt() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.decrypt"]], "delegated_creds (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.delegated_creds"]], "display_as() (name method)": [[2, "gssapi.names.Name.display_as"]], "encrypt() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.encrypt"]], "export (nametype attribute)": [[2, "gssapi.NameType.export"], [3, "gssapi.raw.types.NameType.export"]], "export() (credentials method)": [[2, "gssapi.creds.Credentials.export"]], "export() (name method)": [[2, "gssapi.names.Name.export"]], "export() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.export"]], "gen_message() (gsserror method)": [[2, "gssapi.exceptions.GSSError.gen_message"], [3, "gssapi.raw.exceptions.GSSError.gen_message"], [3, "gssapi.raw.misc.GSSError.gen_message"]], "get_all_statuses() (gsserror method)": [[2, "gssapi.exceptions.GSSError.get_all_statuses"], [3, "gssapi.raw.exceptions.GSSError.get_all_statuses"], [3, "gssapi.raw.misc.GSSError.get_all_statuses"]], "get_signature() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.get_signature"]], "get_wrap_size_limit() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.get_wrap_size_limit"]], "gssapi": [[2, "module-gssapi"]], "gssapi.creds": [[2, "module-gssapi.creds"]], "gssapi.exceptions": [[2, "module-gssapi.exceptions"]], "gssapi.names": [[2, "module-gssapi.names"]], "gssapi.sec_contexts": [[2, "module-gssapi.sec_contexts"]], "hostbased_service (nametype attribute)": [[2, "gssapi.NameType.hostbased_service"], [3, "gssapi.raw.types.NameType.hostbased_service"]], "impersonate() (credentials method)": [[2, "gssapi.creds.Credentials.impersonate"]], "initiator_name (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.initiator_name"]], "inquire() (credentials method)": [[2, "gssapi.creds.Credentials.inquire"]], "inquire_by_mech() (credentials method)": [[2, "gssapi.creds.Credentials.inquire_by_mech"]], "is_mech_name (name property)": [[2, "gssapi.names.Name.is_mech_name"]], "kerberos (mechtype attribute)": [[2, "gssapi.MechType.kerberos"], [3, "gssapi.raw.misc.MechType.kerberos"], [3, "gssapi.raw.types.MechType.kerberos"]], "kerberos_principal (nametype attribute)": [[2, "gssapi.NameType.kerberos_principal"], [3, "gssapi.raw.types.NameType.kerberos_principal"]], "krb5_nt_principal_name (nametype attribute)": [[2, "gssapi.NameType.krb5_nt_principal_name"], [3, "gssapi.raw.types.NameType.krb5_nt_principal_name"]], "lifetime (credentials property)": [[2, "gssapi.creds.Credentials.lifetime"]], "lifetime (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.lifetime"]], "locally_initiated (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.locally_initiated"]], "machine_uid (nametype attribute)": [[2, "gssapi.NameType.machine_uid"], [3, "gssapi.raw.types.NameType.machine_uid"]], "mech (name property)": [[2, "gssapi.names.Name.mech"]], "mech (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.mech"]], "mechs (credentials property)": [[2, "gssapi.creds.Credentials.mechs"]], "module": [[2, "module-gssapi"], [2, "module-gssapi.creds"], [2, "module-gssapi.exceptions"], [2, "module-gssapi.names"], [2, "module-gssapi.sec_contexts"], [3, "module-gssapi.raw"], [3, "module-gssapi.raw.chan_bindings"], [3, "module-gssapi.raw.creds"], [3, "module-gssapi.raw.exceptions"], [3, "module-gssapi.raw.ext_cred_imp_exp"], [3, "module-gssapi.raw.ext_cred_store"], [3, "module-gssapi.raw.ext_dce"], [3, "module-gssapi.raw.ext_ggf"], [3, "module-gssapi.raw.ext_iov_mic"], [3, "module-gssapi.raw.ext_krb5"], [3, "module-gssapi.raw.ext_password"], [3, "module-gssapi.raw.ext_password_add"], [3, "module-gssapi.raw.ext_rfc4178"], [3, "module-gssapi.raw.ext_rfc5587"], [3, "module-gssapi.raw.ext_rfc5588"], [3, "module-gssapi.raw.ext_rfc5801"], [3, "module-gssapi.raw.ext_rfc6680"], [3, "module-gssapi.raw.ext_s4u"], [3, "module-gssapi.raw.ext_set_cred_opt"], [3, "module-gssapi.raw.message"], [3, "module-gssapi.raw.misc"], [3, "module-gssapi.raw.named_tuples"], [3, "module-gssapi.raw.names"], [3, "module-gssapi.raw.oids"], [3, "module-gssapi.raw.sec_contexts"], [3, "module-gssapi.raw.types"]], "name (credentials property)": [[2, "gssapi.creds.Credentials.name"]], "name_type (name property)": [[2, "gssapi.names.Name.name_type"]], "process_token() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.process_token"]], "set_encoding() (in module gssapi)": [[2, "gssapi.set_encoding"]], "step() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.step"]], "store() (credentials method)": [[2, "gssapi.creds.Credentials.store"]], "string_uid (nametype attribute)": [[2, "gssapi.NameType.string_uid"], [3, "gssapi.raw.types.NameType.string_uid"]], "target_name (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.target_name"]], "unwrap() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.unwrap"]], "usage (credentials property)": [[2, "gssapi.creds.Credentials.usage"]], "user (nametype attribute)": [[2, "gssapi.NameType.user"], [3, "gssapi.raw.types.NameType.user"]], "verify_signature() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.verify_signature"]], "wrap() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.wrap"]], "acceptseccontextresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult"]], "acquirecredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.AcquireCredResult"]], "addcredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.AddCredResult"]], "addresstype (class in gssapi.raw.types)": [[3, "gssapi.raw.types.AddressType"]], "cfxkeydata (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.CfxKeyData"]], "channelbindings (class in gssapi.raw.chan_bindings)": [[3, "gssapi.raw.chan_bindings.ChannelBindings"]], "creds (class in gssapi.raw.creds)": [[3, "gssapi.raw.creds.Creds"]], "displayattrresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult"]], "displaynameresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.DisplayNameResult"]], "genericflagset (class in gssapi.raw.types)": [[3, "gssapi.raw.types.GenericFlagSet"]], "getnameattributeresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult"]], "iov (class in gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.IOV"]], "iovbuffer (class in gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.IOVBuffer"]], "iovbuffertype (class in gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.IOVBufferType"]], "iovunwrapresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.IOVUnwrapResult"]], "initseccontextresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InitSecContextResult"]], "inquireattrsresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireAttrsResult"]], "inquirecontextresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireContextResult"]], "inquirecredbymechresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult"]], "inquirecredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireCredResult"]], "inquirenameresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireNameResult"]], "inquiresaslnameresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult"]], "intenumflagset (class in gssapi.raw.types)": [[3, "gssapi.raw.types.IntEnumFlagSet"]], "krb5lucidcontext (class in gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContext"]], "krb5lucidcontextv1 (class in gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1"]], "max_val (genericflagset attribute)": [[3, "gssapi.raw.types.GenericFlagSet.MAX_VAL"]], "mechtype (class in gssapi.raw.misc)": [[3, "gssapi.raw.misc.MechType"]], "mechtype (class in gssapi.raw.types)": [[3, "gssapi.raw.types.MechType"]], "name (class in gssapi.raw.misc)": [[3, "gssapi.raw.misc.Name"]], "name (class in gssapi.raw.names)": [[3, "gssapi.raw.names.Name"]], "nametype (class in gssapi.raw.types)": [[3, "gssapi.raw.types.NameType"]], "oid (class in gssapi.raw.misc)": [[3, "gssapi.raw.misc.OID"]], "oid (class in gssapi.raw.oids)": [[3, "gssapi.raw.oids.OID"]], "rfc 2744": [[3, "index-0"], [4, "index-0"]], "rfc 4178": [[3, "index-1"]], "rfc 5587": [[3, "index-2"]], "rfc 5801": [[3, "index-4"]], "rfc 6680": [[3, "index-5"]], "requirementflag (class in gssapi.raw.types)": [[3, "gssapi.raw.types.RequirementFlag"]], "rfc1964keydata (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData"]], "securitycontext (class in gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.SecurityContext"]], "storecredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.StoreCredResult"]], "unwrapresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.UnwrapResult"]], "wrapresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.WrapResult"]], "accept_lifetime (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.accept_lifetime"]], "accept_lifetime (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.accept_lifetime"]], "accept_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.accept_sec_context"]], "acceptor_address (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.acceptor_address"]], "acceptor_address_type (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.acceptor_address_type"]], "acceptor_subkey (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.acceptor_subkey"]], "acceptor_subkey_type (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.acceptor_subkey_type"]], "acquire_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.acquire_cred"]], "acquire_cred_from() (in module gssapi.raw.ext_cred_store)": [[3, "gssapi.raw.ext_cred_store.acquire_cred_from"]], "acquire_cred_impersonate_name() (in module gssapi.raw.ext_s4u)": [[3, "gssapi.raw.ext_s4u.acquire_cred_impersonate_name"]], "acquire_cred_with_password() (in module gssapi.raw.ext_password)": [[3, "gssapi.raw.ext_password.acquire_cred_with_password"]], "add() (genericflagset method)": [[3, "gssapi.raw.types.GenericFlagSet.add"]], "add_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.add_cred"]], "add_cred_from() (in module gssapi.raw.ext_cred_store)": [[3, "gssapi.raw.ext_cred_store.add_cred_from"]], "add_cred_impersonate_name() (in module gssapi.raw.ext_s4u)": [[3, "gssapi.raw.ext_s4u.add_cred_impersonate_name"]], "add_cred_with_password() (in module gssapi.raw.ext_password_add)": [[3, "gssapi.raw.ext_password_add.add_cred_with_password"]], "allocate (iovbuffer attribute)": [[3, "gssapi.raw.ext_dce.IOVBuffer.allocate"]], "anonymity (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.anonymity"]], "appletalk (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.appletalk"]], "application_data (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.application_data"]], "arpanet (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.arpanet"]], "attrs (inquirenameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireNameResult.attrs"]], "authenticated (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.authenticated"]], "bisync (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.bisync"]], "calling_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.calling_code"], [3, "gssapi.raw.misc.GSSError.calling_code"]], "canonicalize_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.canonicalize_name"]], "ccitt (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ccitt"]], "cfx_kd (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.cfx_kd"]], "channel_bound (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.channel_bound"]], "chaos (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.chaos"]], "compare_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.compare_name"]], "complete (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.complete"]], "complete (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.complete"]], "confidentiality (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.confidentiality"]], "context (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.context"]], "context (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.context"]], "context_time() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.context_time"]], "count() (iov method)": [[3, "gssapi.raw.ext_dce.IOV.count"]], "creds (acquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.AcquireCredResult.creds"]], "creds (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.creds"]], "ctx_key (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.ctx_key"]], "ctx_key_type (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.ctx_key_type"]], "data (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.data"]], "datakit (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.datakit"]], "dce_style (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.dce_style"]], "decnet (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.decnet"]], "delegate_to_peer (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.delegate_to_peer"]], "delegated_creds (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.delegated_creds"]], "delete_name_attribute() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.delete_name_attribute"]], "delete_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.delete_sec_context"]], "discard() (genericflagset method)": [[3, "gssapi.raw.types.GenericFlagSet.discard"]], "display_mech_attr() (in module gssapi.raw.ext_rfc5587)": [[3, "gssapi.raw.ext_rfc5587.display_mech_attr"]], "display_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.display_name"]], "display_name_ext() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.display_name_ext"]], "display_values (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.display_values"]], "dli (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.dli"]], "dotted_form (oid property)": [[3, "gssapi.raw.misc.OID.dotted_form"], [3, "gssapi.raw.oids.OID.dotted_form"]], "dss (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.dss"]], "duplicate_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.duplicate_name"]], "ecma (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ecma"]], "empty (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.empty"]], "encrypted (iovunwrapresult attribute)": [[3, "gssapi.raw.named_tuples.IOVUnwrapResult.encrypted"]], "encrypted (unwrapresult attribute)": [[3, "gssapi.raw.named_tuples.UnwrapResult.encrypted"]], "encrypted (wrapresult attribute)": [[3, "gssapi.raw.named_tuples.WrapResult.encrypted"]], "endtime (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.endtime"]], "export_cred() (in module gssapi.raw.ext_cred_imp_exp)": [[3, "gssapi.raw.ext_cred_imp_exp.export_cred"]], "export_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.export_name"]], "export_name_composite() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.export_name_composite"]], "export_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.export_sec_context"]], "extended_error (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.extended_error"]], "flags (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.flags"]], "flags (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.flags"]], "flags (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.flags"]], "from_int_seq() (oid class method)": [[3, "gssapi.raw.misc.OID.from_int_seq"], [3, "gssapi.raw.oids.OID.from_int_seq"]], "get_mic() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.get_mic"]], "get_mic_iov() (in module gssapi.raw.ext_iov_mic)": [[3, "gssapi.raw.ext_iov_mic.get_mic_iov"]], "get_mic_iov_length() (in module gssapi.raw.ext_iov_mic)": [[3, "gssapi.raw.ext_iov_mic.get_mic_iov_length"]], "get_name_attribute() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.get_name_attribute"]], "gssapi.raw": [[3, "module-gssapi.raw"]], "gssapi.raw.chan_bindings": [[3, "module-gssapi.raw.chan_bindings"]], "gssapi.raw.creds": [[3, "module-gssapi.raw.creds"]], "gssapi.raw.exceptions": [[3, "module-gssapi.raw.exceptions"]], "gssapi.raw.ext_cred_imp_exp": [[3, "module-gssapi.raw.ext_cred_imp_exp"]], "gssapi.raw.ext_cred_store": [[3, "module-gssapi.raw.ext_cred_store"]], "gssapi.raw.ext_dce": [[3, "module-gssapi.raw.ext_dce"]], "gssapi.raw.ext_ggf": [[3, "module-gssapi.raw.ext_ggf"]], "gssapi.raw.ext_iov_mic": [[3, "module-gssapi.raw.ext_iov_mic"]], "gssapi.raw.ext_krb5": [[3, "module-gssapi.raw.ext_krb5"]], "gssapi.raw.ext_password": [[3, "module-gssapi.raw.ext_password"]], "gssapi.raw.ext_password_add": [[3, "module-gssapi.raw.ext_password_add"]], "gssapi.raw.ext_rfc4178": [[3, "module-gssapi.raw.ext_rfc4178"]], "gssapi.raw.ext_rfc5587": [[3, "module-gssapi.raw.ext_rfc5587"]], "gssapi.raw.ext_rfc5588": [[3, "module-gssapi.raw.ext_rfc5588"]], "gssapi.raw.ext_rfc5801": [[3, "module-gssapi.raw.ext_rfc5801"]], "gssapi.raw.ext_rfc6680": [[3, "module-gssapi.raw.ext_rfc6680"]], "gssapi.raw.ext_s4u": [[3, "module-gssapi.raw.ext_s4u"]], "gssapi.raw.ext_set_cred_opt": [[3, "module-gssapi.raw.ext_set_cred_opt"]], "gssapi.raw.message": [[3, "module-gssapi.raw.message"]], "gssapi.raw.misc": [[3, "module-gssapi.raw.misc"]], "gssapi.raw.named_tuples": [[3, "module-gssapi.raw.named_tuples"]], "gssapi.raw.names": [[3, "module-gssapi.raw.names"]], "gssapi.raw.oids": [[3, "module-gssapi.raw.oids"]], "gssapi.raw.sec_contexts": [[3, "module-gssapi.raw.sec_contexts"]], "gssapi.raw.types": [[3, "module-gssapi.raw.types"]], "header (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.header"]], "hyperchannel (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.hyperchannel"]], "ibm_sna (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ibm_sna"]], "identify (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.identify"]], "import_cred() (in module gssapi.raw.ext_cred_imp_exp)": [[3, "gssapi.raw.ext_cred_imp_exp.import_cred"]], "import_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.import_name"]], "import_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.import_sec_context"]], "index() (iov method)": [[3, "gssapi.raw.ext_dce.IOV.index"]], "indicate_mechs() (in module gssapi.raw.misc)": [[3, "gssapi.raw.misc.indicate_mechs"]], "indicate_mechs_by_attrs() (in module gssapi.raw.ext_rfc5587)": [[3, "gssapi.raw.ext_rfc5587.indicate_mechs_by_attrs"]], "init_lifetime (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.init_lifetime"]], "init_lifetime (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.init_lifetime"]], "init_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.init_sec_context"]], "initiator_address (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.initiator_address"]], "initiator_address_type (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.initiator_address_type"]], "initiator_name (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.initiator_name"]], "initiator_name (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.initiator_name"]], "inquire_attrs_for_mech() (in module gssapi.raw.ext_rfc5587)": [[3, "gssapi.raw.ext_rfc5587.inquire_attrs_for_mech"]], "inquire_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.inquire_context"]], "inquire_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.inquire_cred"]], "inquire_cred_by_mech() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.inquire_cred_by_mech"]], "inquire_cred_by_oid() (in module gssapi.raw.ext_ggf)": [[3, "gssapi.raw.ext_ggf.inquire_cred_by_oid"]], "inquire_mech_for_saslname() (in module gssapi.raw.ext_rfc5801)": [[3, "gssapi.raw.ext_rfc5801.inquire_mech_for_saslname"]], "inquire_mechs_for_name() (in module gssapi.raw.misc)": [[3, "gssapi.raw.misc.inquire_mechs_for_name"]], "inquire_name() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.inquire_name"]], "inquire_names_for_mech() (in module gssapi.raw.misc)": [[3, "gssapi.raw.misc.inquire_names_for_mech"]], "inquire_saslname_for_mech() (in module gssapi.raw.ext_rfc5801)": [[3, "gssapi.raw.ext_rfc5801.inquire_saslname_for_mech"]], "inquire_sec_context_by_oid() (in module gssapi.raw.ext_ggf)": [[3, "gssapi.raw.ext_ggf.inquire_sec_context_by_oid"]], "integrity (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.integrity"]], "ip (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ip"]], "is_initiator (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.is_initiator"]], "is_mech_name (inquirenameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireNameResult.is_mech_name"]], "key (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.key"]], "key_type (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.key_type"]], "known_mech_attrs (inquireattrsresult attribute)": [[3, "gssapi.raw.named_tuples.InquireAttrsResult.known_mech_attrs"]], "krb5_ccache_name() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_ccache_name"]], "krb5_export_lucid_sec_context() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_export_lucid_sec_context"]], "krb5_extract_authtime_from_sec_context() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_extract_authtime_from_sec_context"]], "krb5_extract_authz_data_from_sec_context() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_extract_authz_data_from_sec_context"]], "krb5_get_tkt_flags() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_get_tkt_flags"]], "krb5_import_cred() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_import_cred"]], "krb5_set_allowable_enctypes() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_set_allowable_enctypes"]], "lat (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.lat"]], "lifetime (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.lifetime"]], "lifetime (acquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.AcquireCredResult.lifetime"]], "lifetime (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.lifetime"]], "lifetime (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.lifetime"]], "lifetime (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.lifetime"]], "local (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.local"]], "locally_init (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.locally_init"]], "long_desc (displayattrresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult.long_desc"]], "maj_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.maj_code"], [3, "gssapi.raw.misc.GSSError.maj_code"]], "mech (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.mech"]], "mech (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.mech"]], "mech (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.mech"]], "mech (inquirenameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireNameResult.mech"]], "mech_attrs (inquireattrsresult attribute)": [[3, "gssapi.raw.named_tuples.InquireAttrsResult.mech_attrs"]], "mech_description (inquiresaslnameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult.mech_description"]], "mech_name (inquiresaslnameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult.mech_name"]], "mech_params (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.mech_params"]], "mechs (acquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.AcquireCredResult.mechs"]], "mechs (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.mechs"]], "mechs (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.mechs"]], "mechs (storecredresult attribute)": [[3, "gssapi.raw.named_tuples.StoreCredResult.mechs"]], "message (unwrapresult attribute)": [[3, "gssapi.raw.named_tuples.UnwrapResult.message"]], "message (wrapresult attribute)": [[3, "gssapi.raw.named_tuples.WrapResult.message"]], "mic_token (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.mic_token"]], "min_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.min_code"], [3, "gssapi.raw.misc.GSSError.min_code"]], "more_steps (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.more_steps"]], "more_steps (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.more_steps"]], "mutual_authentication (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.mutual_authentication"]], "name (displayattrresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult.name"]], "name (displaynameresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayNameResult.name"]], "name (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.name"]], "name (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.name"]], "name_type (displaynameresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayNameResult.name_type"]], "nbs (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.nbs"]], "null (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.null"]], "ok_as_delegate (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.ok_as_delegate"]], "osi_tp4 (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.osi_tp4"]], "out_of_sequence_detection (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.out_of_sequence_detection"]], "padding (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.padding"]], "process_context_token() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.process_context_token"]], "protection_ready (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.protection_ready"]], "protocol (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.protocol"]], "pup (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.pup"]], "qop (iovunwrapresult attribute)": [[3, "gssapi.raw.named_tuples.IOVUnwrapResult.qop"]], "qop (unwrapresult attribute)": [[3, "gssapi.raw.named_tuples.UnwrapResult.qop"]], "recv_seq (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.recv_seq"]], "release_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.release_cred"]], "release_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.release_name"]], "replay_detection (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.replay_detection"]], "rfc1964_kd (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.rfc1964_kd"]], "routine_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.routine_code"], [3, "gssapi.raw.misc.GSSError.routine_code"]], "sasl_mech_name (inquiresaslnameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult.sasl_mech_name"]], "seal_alg (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.seal_alg"]], "send_seq (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.send_seq"]], "set_cred_option() (in module gssapi.raw.ext_set_cred_opt)": [[3, "gssapi.raw.ext_set_cred_opt.set_cred_option"]], "set_name_attribute() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.set_name_attribute"]], "set_neg_mechs() (in module gssapi.raw.ext_rfc4178)": [[3, "gssapi.raw.ext_rfc4178.set_neg_mechs"]], "set_sec_context_option() (in module gssapi.raw.ext_ggf)": [[3, "gssapi.raw.ext_ggf.set_sec_context_option"]], "short_desc (displayattrresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult.short_desc"]], "sign_alg (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.sign_alg"]], "sign_only (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.sign_only"]], "store_cred() (in module gssapi.raw.ext_rfc5588)": [[3, "gssapi.raw.ext_rfc5588.store_cred"]], "store_cred_into() (in module gssapi.raw.ext_cred_store)": [[3, "gssapi.raw.ext_cred_store.store_cred_into"]], "stream (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.stream"]], "supplementary_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.supplementary_code"], [3, "gssapi.raw.misc.GSSError.supplementary_code"]], "target_name (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.target_name"]], "token (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.token"]], "token (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.token"], [3, "gssapi.raw.misc.GSSError.token"]], "token (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.token"]], "trailer (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.trailer"]], "transferable (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.transferable"]], "type (iovbuffer attribute)": [[3, "gssapi.raw.ext_dce.IOVBuffer.type"]], "unwrap() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.unwrap"]], "unwrap_aead() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.unwrap_aead"]], "unwrap_iov() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.unwrap_iov"]], "usage (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.usage"]], "usage (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.usage"]], "usage (storecredresult attribute)": [[3, "gssapi.raw.named_tuples.StoreCredResult.usage"]], "value (iovbuffer attribute)": [[3, "gssapi.raw.ext_dce.IOVBuffer.value"]], "values (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.values"]], "verify_mic() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.verify_mic"]], "verify_mic_iov() (in module gssapi.raw.ext_iov_mic)": [[3, "gssapi.raw.ext_iov_mic.verify_mic_iov"]], "version (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.version"]], "wrap() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.wrap"]], "wrap_aead() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.wrap_aead"]], "wrap_iov() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.wrap_iov"]], "wrap_iov_length() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.wrap_iov_length"]], "wrap_size_limit() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.wrap_size_limit"]], "x25 (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.x25"]], "xerox_ns (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.xerox_ns"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A Basic Introduction to GSSAPI": [[0, null]], "Acquiring Credentials With a Password Extensions": [[3, "module-gssapi.raw.ext_password"]], "Additional RFCs and Extensions": [[3, "additional-rfcs-and-extensions"]], "Common Values for Credentials Store Extensions": [[1, null]], "Core RFC 2744": [[3, "core-rfc-2744"]], "Credential Store Extensions": [[3, "module-gssapi.raw.ext_cred_store"]], "Credentials": [[2, "module-gssapi.creds"], [3, "module-gssapi.raw.creds"]], "Credentials Import-Export Extensions": [[3, "module-gssapi.raw.ext_cred_imp_exp"]], "DCE (IOV/AEAD) Extensions": [[3, "module-gssapi.raw.ext_dce"]], "Enums and Helper Classes": [[2, "enums-and-helper-classes"]], "Exceptions": [[2, "exceptions"], [3, "module-gssapi.raw.exceptions"]], "Global Grid Forum (GGF) Extensions": [[3, "module-gssapi.raw.ext_ggf"]], "High-Level API": [[2, null]], "IOV MIC Extensions": [[3, "module-gssapi.raw.ext_iov_mic"]], "Indices and tables": [[4, "indices-and-tables"]], "Kerberos Specific Extensions": [[3, "module-gssapi.raw.ext_krb5"]], "Low-Level API": [[3, null]], "Main Classes": [[2, "main-classes"]], "Misc": [[3, "module-gssapi.raw.oids"]], "Names": [[2, "module-gssapi.names"], [3, "names"]], "Names and Credentials": [[0, "names-and-credentials"]], "Other Documentation": [[5, null]], "Other Extensions": [[3, "module-gssapi.raw.ext_set_cred_opt"]], "Python-GSSAPI: Python bindings for GSSAPI": [[4, null]], "RFC 4178 (GSS-API Negotiation Mechanism)": [[3, "module-gssapi.raw.ext_rfc4178"]], "RFC 5587 (GSS-API Extension for Mech Attributes)": [[3, "module-gssapi.raw.ext_rfc5587"]], "RFC 5588 (GSS-API Extension for Storing Delegated Credentials)": [[3, "module-gssapi.raw.ext_rfc5588"]], "RFC 5801 (GSS-API SASL Extensions)": [[3, "module-gssapi.raw.ext_rfc5801"]], "RFC 6680 (GSS-API Naming Extensions)": [[3, "module-gssapi.raw.ext_rfc6680"]], "Results": [[3, "results"]], "Security Contexts": [[0, "security-contexts"], [2, "module-gssapi.sec_contexts"], [3, "module-gssapi.raw.sec_contexts"]], "Services4User Extensions": [[3, "module-gssapi.raw.ext_s4u"]], "The krb5 mechanism in Heimdal": [[1, "the-krb5-mechanism-in-heimdal"]], "The krb5 mechanism in MIT libraries": [[1, "the-krb5-mechanism-in-mit-libraries"]], "Tutorials": [[6, null]], "Utilities": [[2, "utilities"]], "ccache": [[1, "ccache"]], "client_keytab": [[1, "client-keytab"]], "keytab": [[1, "keytab"]], "rcache": [[1, "rcache"]]}, "docnames": ["basic-tutorial", "credstore", "gssapi", "gssapi.raw", "index", "otherdoc", "tutorials"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["basic-tutorial.md", "credstore.rst", "gssapi.rst", "gssapi.raw.rst", "index.rst", "otherdoc.rst", "tutorials.rst"], "indexentries": {"accept_lifetime (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.accept_lifetime", false]], "accept_lifetime (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.accept_lifetime", false]], "accept_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.accept_sec_context", false]], "acceptor_address (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.acceptor_address", false]], "acceptor_address_type (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.acceptor_address_type", false]], "acceptor_subkey (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.acceptor_subkey", false]], "acceptor_subkey_type (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.acceptor_subkey_type", false]], "acceptseccontextresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult", false]], "acquire() (credentials class method)": [[2, "gssapi.creds.Credentials.acquire", false]], "acquire_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.acquire_cred", false]], "acquire_cred_from() (in module gssapi.raw.ext_cred_store)": [[3, "gssapi.raw.ext_cred_store.acquire_cred_from", false]], "acquire_cred_impersonate_name() (in module gssapi.raw.ext_s4u)": [[3, "gssapi.raw.ext_s4u.acquire_cred_impersonate_name", false]], "acquire_cred_with_password() (in module gssapi.raw.ext_password)": [[3, "gssapi.raw.ext_password.acquire_cred_with_password", false]], "acquirecredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.AcquireCredResult", false]], "actual_flags (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.actual_flags", false]], "add() (credentials method)": [[2, "gssapi.creds.Credentials.add", false]], "add() (genericflagset method)": [[3, "gssapi.raw.types.GenericFlagSet.add", false]], "add_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.add_cred", false]], "add_cred_from() (in module gssapi.raw.ext_cred_store)": [[3, "gssapi.raw.ext_cred_store.add_cred_from", false]], "add_cred_impersonate_name() (in module gssapi.raw.ext_s4u)": [[3, "gssapi.raw.ext_s4u.add_cred_impersonate_name", false]], "add_cred_with_password() (in module gssapi.raw.ext_password_add)": [[3, "gssapi.raw.ext_password_add.add_cred_with_password", false]], "addcredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.AddCredResult", false]], "addresstype (class in gssapi)": [[2, "gssapi.AddressType", false]], "addresstype (class in gssapi.raw.types)": [[3, "gssapi.raw.types.AddressType", false]], "allocate (iovbuffer attribute)": [[3, "gssapi.raw.ext_dce.IOVBuffer.allocate", false]], "anonymity (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.anonymity", false]], "anonymous (nametype attribute)": [[2, "gssapi.NameType.anonymous", false], [3, "gssapi.raw.types.NameType.anonymous", false]], "appletalk (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.appletalk", false]], "application_data (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.application_data", false]], "arpanet (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.arpanet", false]], "attributes (name property)": [[2, "gssapi.names.Name.attributes", false]], "attrs (inquirenameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireNameResult.attrs", false]], "authenticated (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.authenticated", false]], "badchannelbindingserror": [[2, "gssapi.exceptions.BadChannelBindingsError", false], [3, "gssapi.raw.exceptions.BadChannelBindingsError", false]], "badmechanismerror": [[2, "gssapi.exceptions.BadMechanismError", false], [3, "gssapi.raw.exceptions.BadMechanismError", false]], "badmicerror": [[2, "gssapi.exceptions.BadMICError", false], [3, "gssapi.raw.exceptions.BadMICError", false]], "badnameerror": [[2, "gssapi.exceptions.BadNameError", false], [3, "gssapi.raw.exceptions.BadNameError", false]], "badnametypeerror": [[2, "gssapi.exceptions.BadNameTypeError", false], [3, "gssapi.raw.exceptions.BadNameTypeError", false]], "badqoperror": [[2, "gssapi.exceptions.BadQoPError", false], [3, "gssapi.raw.exceptions.BadQoPError", false]], "badstatuserror": [[2, "gssapi.exceptions.BadStatusError", false], [3, "gssapi.raw.exceptions.BadStatusError", false]], "bisync (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.bisync", false]], "calling_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.calling_code", false], [3, "gssapi.raw.misc.GSSError.calling_code", false]], "calling_code (malformedparametererror attribute)": [[2, "gssapi.exceptions.MalformedParameterError.CALLING_CODE", false]], "calling_code (parameterreaderror attribute)": [[2, "gssapi.exceptions.ParameterReadError.CALLING_CODE", false]], "calling_code (parameterwriteerror attribute)": [[2, "gssapi.exceptions.ParameterWriteError.CALLING_CODE", false]], "canonicalize() (name method)": [[2, "gssapi.names.Name.canonicalize", false]], "canonicalize_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.canonicalize_name", false]], "ccitt (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ccitt", false]], "cfx_kd (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.cfx_kd", false]], "cfxkeydata (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.CfxKeyData", false]], "channel_bound (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.channel_bound", false]], "channelbindings (class in gssapi.raw.chan_bindings)": [[3, "gssapi.raw.chan_bindings.ChannelBindings", false]], "chaos (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.chaos", false]], "compare_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.compare_name", false]], "complete (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.complete", false]], "complete (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.complete", false]], "complete (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.complete", false]], "composite_export (nametype attribute)": [[2, "gssapi.NameType.composite_export", false], [3, "gssapi.raw.types.NameType.composite_export", false]], "confidentiality (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.confidentiality", false]], "context (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.context", false]], "context (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.context", false]], "context_time() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.context_time", false]], "contextreaderror": [[2, "gssapi.exceptions.ContextReadError", false], [3, "gssapi.raw.exceptions.ContextReadError", false]], "contextwriteerror": [[2, "gssapi.exceptions.ContextWriteError", false], [3, "gssapi.raw.exceptions.ContextWriteError", false]], "count() (iov method)": [[3, "gssapi.raw.ext_dce.IOV.count", false]], "credentials (class in gssapi.creds)": [[2, "gssapi.creds.Credentials", false]], "credentialsreaderror": [[2, "gssapi.exceptions.CredentialsReadError", false], [3, "gssapi.raw.exceptions.CredentialsReadError", false]], "credentialswriteerror": [[2, "gssapi.exceptions.CredentialsWriteError", false], [3, "gssapi.raw.exceptions.CredentialsWriteError", false]], "creds (acquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.AcquireCredResult.creds", false]], "creds (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.creds", false]], "creds (class in gssapi.raw.creds)": [[3, "gssapi.raw.creds.Creds", false]], "ctx_key (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.ctx_key", false]], "ctx_key_type (cfxkeydata attribute)": [[3, "gssapi.raw.named_tuples.CfxKeyData.ctx_key_type", false]], "data (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.data", false]], "datakit (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.datakit", false]], "dce_style (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.dce_style", false]], "decnet (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.decnet", false]], "decrypt() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.decrypt", false]], "delegate_to_peer (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.delegate_to_peer", false]], "delegated_creds (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.delegated_creds", false]], "delegated_creds (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.delegated_creds", false]], "delete_name_attribute() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.delete_name_attribute", false]], "delete_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.delete_sec_context", false]], "discard() (genericflagset method)": [[3, "gssapi.raw.types.GenericFlagSet.discard", false]], "display_as() (name method)": [[2, "gssapi.names.Name.display_as", false]], "display_mech_attr() (in module gssapi.raw.ext_rfc5587)": [[3, "gssapi.raw.ext_rfc5587.display_mech_attr", false]], "display_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.display_name", false]], "display_name_ext() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.display_name_ext", false]], "display_values (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.display_values", false]], "displayattrresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult", false]], "displaynameresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.DisplayNameResult", false]], "dli (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.dli", false]], "dotted_form (oid property)": [[3, "gssapi.raw.misc.OID.dotted_form", false], [3, "gssapi.raw.oids.OID.dotted_form", false]], "dss (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.dss", false]], "duplicate_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.duplicate_name", false]], "duplicatecredentialselementerror": [[2, "gssapi.exceptions.DuplicateCredentialsElementError", false], [3, "gssapi.raw.exceptions.DuplicateCredentialsElementError", false]], "duplicatetokenerror": [[2, "gssapi.exceptions.DuplicateTokenError", false], [3, "gssapi.raw.exceptions.DuplicateTokenError", false]], "ecma (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ecma", false]], "empty (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.empty", false]], "encrypt() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.encrypt", false]], "encrypted (iovunwrapresult attribute)": [[3, "gssapi.raw.named_tuples.IOVUnwrapResult.encrypted", false]], "encrypted (unwrapresult attribute)": [[3, "gssapi.raw.named_tuples.UnwrapResult.encrypted", false]], "encrypted (wrapresult attribute)": [[3, "gssapi.raw.named_tuples.WrapResult.encrypted", false]], "encryptionnotused": [[2, "gssapi.exceptions.EncryptionNotUsed", false]], "endtime (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.endtime", false]], "expiredcontexterror": [[2, "gssapi.exceptions.ExpiredContextError", false], [3, "gssapi.raw.exceptions.ExpiredContextError", false]], "expiredcredentialserror": [[2, "gssapi.exceptions.ExpiredCredentialsError", false], [3, "gssapi.raw.exceptions.ExpiredCredentialsError", false]], "expiredtokenerror": [[2, "gssapi.exceptions.ExpiredTokenError", false], [3, "gssapi.raw.exceptions.ExpiredTokenError", false]], "export (nametype attribute)": [[2, "gssapi.NameType.export", false], [3, "gssapi.raw.types.NameType.export", false]], "export() (credentials method)": [[2, "gssapi.creds.Credentials.export", false]], "export() (name method)": [[2, "gssapi.names.Name.export", false]], "export() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.export", false]], "export_cred() (in module gssapi.raw.ext_cred_imp_exp)": [[3, "gssapi.raw.ext_cred_imp_exp.export_cred", false]], "export_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.export_name", false]], "export_name_composite() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.export_name_composite", false]], "export_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.export_sec_context", false]], "extended_error (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.extended_error", false]], "flags (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.flags", false]], "flags (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.flags", false]], "flags (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.flags", false]], "fmt_str (generalerror attribute)": [[2, "gssapi.exceptions.GeneralError.FMT_STR", false]], "from_int_seq() (oid class method)": [[3, "gssapi.raw.misc.OID.from_int_seq", false], [3, "gssapi.raw.oids.OID.from_int_seq", false]], "gen_message() (gsserror method)": [[2, "gssapi.exceptions.GSSError.gen_message", false], [3, "gssapi.raw.exceptions.GSSError.gen_message", false], [3, "gssapi.raw.misc.GSSError.gen_message", false]], "generalerror": [[2, "gssapi.exceptions.GeneralError", false]], "genericflagset (class in gssapi.raw.types)": [[3, "gssapi.raw.types.GenericFlagSet", false]], "get_all_statuses() (gsserror method)": [[2, "gssapi.exceptions.GSSError.get_all_statuses", false], [3, "gssapi.raw.exceptions.GSSError.get_all_statuses", false], [3, "gssapi.raw.misc.GSSError.get_all_statuses", false]], "get_mic() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.get_mic", false]], "get_mic_iov() (in module gssapi.raw.ext_iov_mic)": [[3, "gssapi.raw.ext_iov_mic.get_mic_iov", false]], "get_mic_iov_length() (in module gssapi.raw.ext_iov_mic)": [[3, "gssapi.raw.ext_iov_mic.get_mic_iov_length", false]], "get_name_attribute() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.get_name_attribute", false]], "get_signature() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.get_signature", false]], "get_wrap_size_limit() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.get_wrap_size_limit", false]], "getnameattributeresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult", false]], "gssapi": [[2, "module-gssapi", false]], "gssapi.creds": [[2, "module-gssapi.creds", false]], "gssapi.exceptions": [[2, "module-gssapi.exceptions", false]], "gssapi.names": [[2, "module-gssapi.names", false]], "gssapi.raw": [[3, "module-gssapi.raw", false]], "gssapi.raw.chan_bindings": [[3, "module-gssapi.raw.chan_bindings", false]], "gssapi.raw.creds": [[3, "module-gssapi.raw.creds", false]], "gssapi.raw.exceptions": [[3, "module-gssapi.raw.exceptions", false]], "gssapi.raw.ext_cred_imp_exp": [[3, "module-gssapi.raw.ext_cred_imp_exp", false]], "gssapi.raw.ext_cred_store": [[3, "module-gssapi.raw.ext_cred_store", false]], "gssapi.raw.ext_dce": [[3, "module-gssapi.raw.ext_dce", false]], "gssapi.raw.ext_ggf": [[3, "module-gssapi.raw.ext_ggf", false]], "gssapi.raw.ext_iov_mic": [[3, "module-gssapi.raw.ext_iov_mic", false]], "gssapi.raw.ext_krb5": [[3, "module-gssapi.raw.ext_krb5", false]], "gssapi.raw.ext_password": [[3, "module-gssapi.raw.ext_password", false]], "gssapi.raw.ext_password_add": [[3, "module-gssapi.raw.ext_password_add", false]], "gssapi.raw.ext_rfc4178": [[3, "module-gssapi.raw.ext_rfc4178", false]], "gssapi.raw.ext_rfc5587": [[3, "module-gssapi.raw.ext_rfc5587", false]], "gssapi.raw.ext_rfc5588": [[3, "module-gssapi.raw.ext_rfc5588", false]], "gssapi.raw.ext_rfc5801": [[3, "module-gssapi.raw.ext_rfc5801", false]], "gssapi.raw.ext_rfc6680": [[3, "module-gssapi.raw.ext_rfc6680", false]], "gssapi.raw.ext_s4u": [[3, "module-gssapi.raw.ext_s4u", false]], "gssapi.raw.ext_set_cred_opt": [[3, "module-gssapi.raw.ext_set_cred_opt", false]], "gssapi.raw.message": [[3, "module-gssapi.raw.message", false]], "gssapi.raw.misc": [[3, "module-gssapi.raw.misc", false]], "gssapi.raw.named_tuples": [[3, "module-gssapi.raw.named_tuples", false]], "gssapi.raw.names": [[3, "module-gssapi.raw.names", false]], "gssapi.raw.oids": [[3, "module-gssapi.raw.oids", false]], "gssapi.raw.sec_contexts": [[3, "module-gssapi.raw.sec_contexts", false]], "gssapi.raw.types": [[3, "module-gssapi.raw.types", false]], "gssapi.sec_contexts": [[2, "module-gssapi.sec_contexts", false]], "gsserror": [[2, "gssapi.exceptions.GSSError", false], [3, "gssapi.raw.exceptions.GSSError", false], [3, "gssapi.raw.misc.GSSError", false]], "header (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.header", false]], "hostbased_service (nametype attribute)": [[2, "gssapi.NameType.hostbased_service", false], [3, "gssapi.raw.types.NameType.hostbased_service", false]], "hyperchannel (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.hyperchannel", false]], "ibm_sna (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ibm_sna", false]], "identify (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.identify", false]], "impersonate() (credentials method)": [[2, "gssapi.creds.Credentials.impersonate", false]], "import_cred() (in module gssapi.raw.ext_cred_imp_exp)": [[3, "gssapi.raw.ext_cred_imp_exp.import_cred", false]], "import_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.import_name", false]], "import_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.import_sec_context", false]], "index() (iov method)": [[3, "gssapi.raw.ext_dce.IOV.index", false]], "indicate_mechs() (in module gssapi.raw.misc)": [[3, "gssapi.raw.misc.indicate_mechs", false]], "indicate_mechs_by_attrs() (in module gssapi.raw.ext_rfc5587)": [[3, "gssapi.raw.ext_rfc5587.indicate_mechs_by_attrs", false]], "init_lifetime (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.init_lifetime", false]], "init_lifetime (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.init_lifetime", false]], "init_sec_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.init_sec_context", false]], "initiator_address (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.initiator_address", false]], "initiator_address_type (channelbindings attribute)": [[3, "gssapi.raw.chan_bindings.ChannelBindings.initiator_address_type", false]], "initiator_name (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.initiator_name", false]], "initiator_name (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.initiator_name", false]], "initiator_name (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.initiator_name", false]], "initseccontextresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InitSecContextResult", false]], "inquire() (credentials method)": [[2, "gssapi.creds.Credentials.inquire", false]], "inquire_attrs_for_mech() (in module gssapi.raw.ext_rfc5587)": [[3, "gssapi.raw.ext_rfc5587.inquire_attrs_for_mech", false]], "inquire_by_mech() (credentials method)": [[2, "gssapi.creds.Credentials.inquire_by_mech", false]], "inquire_context() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.inquire_context", false]], "inquire_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.inquire_cred", false]], "inquire_cred_by_mech() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.inquire_cred_by_mech", false]], "inquire_cred_by_oid() (in module gssapi.raw.ext_ggf)": [[3, "gssapi.raw.ext_ggf.inquire_cred_by_oid", false]], "inquire_mech_for_saslname() (in module gssapi.raw.ext_rfc5801)": [[3, "gssapi.raw.ext_rfc5801.inquire_mech_for_saslname", false]], "inquire_mechs_for_name() (in module gssapi.raw.misc)": [[3, "gssapi.raw.misc.inquire_mechs_for_name", false]], "inquire_name() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.inquire_name", false]], "inquire_names_for_mech() (in module gssapi.raw.misc)": [[3, "gssapi.raw.misc.inquire_names_for_mech", false]], "inquire_saslname_for_mech() (in module gssapi.raw.ext_rfc5801)": [[3, "gssapi.raw.ext_rfc5801.inquire_saslname_for_mech", false]], "inquire_sec_context_by_oid() (in module gssapi.raw.ext_ggf)": [[3, "gssapi.raw.ext_ggf.inquire_sec_context_by_oid", false]], "inquireattrsresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireAttrsResult", false]], "inquirecontextresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireContextResult", false]], "inquirecredbymechresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult", false]], "inquirecredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireCredResult", false]], "inquirenameresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireNameResult", false]], "inquiresaslnameresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult", false]], "integrity (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.integrity", false]], "intenumflagset (class in gssapi)": [[2, "gssapi.IntEnumFlagSet", false]], "intenumflagset (class in gssapi.raw.types)": [[3, "gssapi.raw.types.IntEnumFlagSet", false]], "invalidcredentialserror": [[2, "gssapi.exceptions.InvalidCredentialsError", false], [3, "gssapi.raw.exceptions.InvalidCredentialsError", false]], "invalidtokenerror": [[2, "gssapi.exceptions.InvalidTokenError", false], [3, "gssapi.raw.exceptions.InvalidTokenError", false]], "iov (class in gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.IOV", false]], "iovbuffer (class in gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.IOVBuffer", false]], "iovbuffertype (class in gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.IOVBufferType", false]], "iovunwrapresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.IOVUnwrapResult", false]], "ip (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.ip", false]], "is_initiator (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.is_initiator", false]], "is_mech_name (inquirenameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireNameResult.is_mech_name", false]], "is_mech_name (name property)": [[2, "gssapi.names.Name.is_mech_name", false]], "kerberos (mechtype attribute)": [[2, "gssapi.MechType.kerberos", false], [3, "gssapi.raw.misc.MechType.kerberos", false], [3, "gssapi.raw.types.MechType.kerberos", false]], "kerberos_principal (nametype attribute)": [[2, "gssapi.NameType.kerberos_principal", false], [3, "gssapi.raw.types.NameType.kerberos_principal", false]], "key (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.key", false]], "key_type (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.key_type", false]], "known_mech_attrs (inquireattrsresult attribute)": [[3, "gssapi.raw.named_tuples.InquireAttrsResult.known_mech_attrs", false]], "krb5_ccache_name() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_ccache_name", false]], "krb5_export_lucid_sec_context() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_export_lucid_sec_context", false]], "krb5_extract_authtime_from_sec_context() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_extract_authtime_from_sec_context", false]], "krb5_extract_authz_data_from_sec_context() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_extract_authz_data_from_sec_context", false]], "krb5_get_tkt_flags() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_get_tkt_flags", false]], "krb5_import_cred() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_import_cred", false]], "krb5_nt_principal_name (nametype attribute)": [[2, "gssapi.NameType.krb5_nt_principal_name", false], [3, "gssapi.raw.types.NameType.krb5_nt_principal_name", false]], "krb5_set_allowable_enctypes() (in module gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.krb5_set_allowable_enctypes", false]], "krb5lucidcontext (class in gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContext", false]], "krb5lucidcontextv1 (class in gssapi.raw.ext_krb5)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1", false]], "lat (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.lat", false]], "lifetime (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.lifetime", false]], "lifetime (acquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.AcquireCredResult.lifetime", false]], "lifetime (credentials property)": [[2, "gssapi.creds.Credentials.lifetime", false]], "lifetime (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.lifetime", false]], "lifetime (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.lifetime", false]], "lifetime (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.lifetime", false]], "lifetime (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.lifetime", false]], "local (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.local", false]], "locally_init (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.locally_init", false]], "locally_initiated (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.locally_initiated", false]], "long_desc (displayattrresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult.long_desc", false]], "machine_uid (nametype attribute)": [[2, "gssapi.NameType.machine_uid", false], [3, "gssapi.raw.types.NameType.machine_uid", false]], "maj_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.maj_code", false], [3, "gssapi.raw.misc.GSSError.maj_code", false]], "major_message (encryptionnotused attribute)": [[2, "gssapi.exceptions.EncryptionNotUsed.MAJOR_MESSAGE", false]], "major_message (generalerror attribute)": [[2, "gssapi.exceptions.GeneralError.MAJOR_MESSAGE", false]], "major_message (unknownusageerror attribute)": [[2, "gssapi.exceptions.UnknownUsageError.MAJOR_MESSAGE", false]], "malformedparametererror": [[2, "gssapi.exceptions.MalformedParameterError", false], [3, "gssapi.raw.exceptions.MalformedParameterError", false]], "max_val (genericflagset attribute)": [[3, "gssapi.raw.types.GenericFlagSet.MAX_VAL", false]], "mech (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.mech", false]], "mech (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.mech", false]], "mech (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.mech", false]], "mech (inquirenameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireNameResult.mech", false]], "mech (name property)": [[2, "gssapi.names.Name.mech", false]], "mech (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.mech", false]], "mech_attrs (inquireattrsresult attribute)": [[3, "gssapi.raw.named_tuples.InquireAttrsResult.mech_attrs", false]], "mech_description (inquiresaslnameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult.mech_description", false]], "mech_name (inquiresaslnameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult.mech_name", false]], "mech_params (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.mech_params", false]], "mechanismnamerequirederror": [[2, "gssapi.exceptions.MechanismNameRequiredError", false], [3, "gssapi.raw.exceptions.MechanismNameRequiredError", false]], "mechs (acquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.AcquireCredResult.mechs", false]], "mechs (addcredresult attribute)": [[3, "gssapi.raw.named_tuples.AddCredResult.mechs", false]], "mechs (credentials property)": [[2, "gssapi.creds.Credentials.mechs", false]], "mechs (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.mechs", false]], "mechs (storecredresult attribute)": [[3, "gssapi.raw.named_tuples.StoreCredResult.mechs", false]], "mechtype (class in gssapi)": [[2, "gssapi.MechType", false]], "mechtype (class in gssapi.raw.misc)": [[3, "gssapi.raw.misc.MechType", false]], "mechtype (class in gssapi.raw.types)": [[3, "gssapi.raw.types.MechType", false]], "message (gsserror attribute)": [[2, "gssapi.exceptions.GSSError.MESSAGE", false]], "message (unwrapresult attribute)": [[3, "gssapi.raw.named_tuples.UnwrapResult.message", false]], "message (wrapresult attribute)": [[3, "gssapi.raw.named_tuples.WrapResult.message", false]], "mic_token (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.mic_token", false]], "min_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.min_code", false], [3, "gssapi.raw.misc.GSSError.min_code", false]], "missingcontexterror": [[2, "gssapi.exceptions.MissingContextError", false], [3, "gssapi.raw.exceptions.MissingContextError", false]], "missingcredentialserror": [[2, "gssapi.exceptions.MissingCredentialsError", false], [3, "gssapi.raw.exceptions.MissingCredentialsError", false]], "module": [[2, "module-gssapi", false], [2, "module-gssapi.creds", false], [2, "module-gssapi.exceptions", false], [2, "module-gssapi.names", false], [2, "module-gssapi.sec_contexts", false], [3, "module-gssapi.raw", false], [3, "module-gssapi.raw.chan_bindings", false], [3, "module-gssapi.raw.creds", false], [3, "module-gssapi.raw.exceptions", false], [3, "module-gssapi.raw.ext_cred_imp_exp", false], [3, "module-gssapi.raw.ext_cred_store", false], [3, "module-gssapi.raw.ext_dce", false], [3, "module-gssapi.raw.ext_ggf", false], [3, "module-gssapi.raw.ext_iov_mic", false], [3, "module-gssapi.raw.ext_krb5", false], [3, "module-gssapi.raw.ext_password", false], [3, "module-gssapi.raw.ext_password_add", false], [3, "module-gssapi.raw.ext_rfc4178", false], [3, "module-gssapi.raw.ext_rfc5587", false], [3, "module-gssapi.raw.ext_rfc5588", false], [3, "module-gssapi.raw.ext_rfc5801", false], [3, "module-gssapi.raw.ext_rfc6680", false], [3, "module-gssapi.raw.ext_s4u", false], [3, "module-gssapi.raw.ext_set_cred_opt", false], [3, "module-gssapi.raw.message", false], [3, "module-gssapi.raw.misc", false], [3, "module-gssapi.raw.named_tuples", false], [3, "module-gssapi.raw.names", false], [3, "module-gssapi.raw.oids", false], [3, "module-gssapi.raw.sec_contexts", false], [3, "module-gssapi.raw.types", false]], "more_steps (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.more_steps", false]], "more_steps (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.more_steps", false]], "mutual_authentication (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.mutual_authentication", false]], "name (class in gssapi.names)": [[2, "gssapi.names.Name", false]], "name (class in gssapi.raw.misc)": [[3, "gssapi.raw.misc.Name", false]], "name (class in gssapi.raw.names)": [[3, "gssapi.raw.names.Name", false]], "name (credentials property)": [[2, "gssapi.creds.Credentials.name", false]], "name (displayattrresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult.name", false]], "name (displaynameresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayNameResult.name", false]], "name (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.name", false]], "name (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.name", false]], "name_type (displaynameresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayNameResult.name_type", false]], "name_type (name property)": [[2, "gssapi.names.Name.name_type", false]], "namereaderror": [[2, "gssapi.exceptions.NameReadError", false], [3, "gssapi.raw.exceptions.NameReadError", false]], "nametype (class in gssapi)": [[2, "gssapi.NameType", false]], "nametype (class in gssapi.raw.types)": [[3, "gssapi.raw.types.NameType", false]], "nametypereaderror": [[2, "gssapi.exceptions.NameTypeReadError", false], [3, "gssapi.raw.exceptions.NameTypeReadError", false]], "nbs (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.nbs", false]], "null (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.null", false]], "oid (class in gssapi)": [[2, "gssapi.OID", false]], "oid (class in gssapi.raw.misc)": [[3, "gssapi.raw.misc.OID", false]], "oid (class in gssapi.raw.oids)": [[3, "gssapi.raw.oids.OID", false]], "ok_as_delegate (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.ok_as_delegate", false]], "operationunavailableerror": [[2, "gssapi.exceptions.OperationUnavailableError", false], [3, "gssapi.raw.exceptions.OperationUnavailableError", false]], "osi_tp4 (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.osi_tp4", false]], "out_of_sequence_detection (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.out_of_sequence_detection", false]], "padding (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.padding", false]], "parameterreaderror": [[2, "gssapi.exceptions.ParameterReadError", false], [3, "gssapi.raw.exceptions.ParameterReadError", false]], "parameterwriteerror": [[2, "gssapi.exceptions.ParameterWriteError", false], [3, "gssapi.raw.exceptions.ParameterWriteError", false]], "process_context_token() (in module gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.process_context_token", false]], "process_token() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.process_token", false]], "protection_ready (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.protection_ready", false]], "protocol (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.protocol", false]], "pup (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.pup", false]], "qop (iovunwrapresult attribute)": [[3, "gssapi.raw.named_tuples.IOVUnwrapResult.qop", false]], "qop (unwrapresult attribute)": [[3, "gssapi.raw.named_tuples.UnwrapResult.qop", false]], "recv_seq (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.recv_seq", false]], "release_cred() (in module gssapi.raw.creds)": [[3, "gssapi.raw.creds.release_cred", false]], "release_name() (in module gssapi.raw.names)": [[3, "gssapi.raw.names.release_name", false]], "replay_detection (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.replay_detection", false]], "requirementflag (class in gssapi)": [[2, "gssapi.RequirementFlag", false]], "requirementflag (class in gssapi.raw.types)": [[3, "gssapi.raw.types.RequirementFlag", false]], "rfc": [[2, "index-0", false], [3, "index-0", false], [3, "index-1", false], [3, "index-2", false], [3, "index-3", false], [3, "index-4", false], [3, "index-5", false], [4, "index-0", false]], "rfc 2744": [[3, "index-0", false], [4, "index-0", false]], "rfc 4178": [[3, "index-1", false]], "rfc 5587": [[3, "index-2", false]], "rfc 5588": [[2, "index-0", false], [3, "index-3", false]], "rfc 5801": [[3, "index-4", false]], "rfc 6680": [[3, "index-5", false]], "rfc1964_kd (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.rfc1964_kd", false]], "rfc1964keydata (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData", false]], "routine_code (badchannelbindingserror attribute)": [[2, "gssapi.exceptions.BadChannelBindingsError.ROUTINE_CODE", false]], "routine_code (badmechanismerror attribute)": [[2, "gssapi.exceptions.BadMechanismError.ROUTINE_CODE", false]], "routine_code (badmicerror attribute)": [[2, "gssapi.exceptions.BadMICError.ROUTINE_CODE", false]], "routine_code (badnameerror attribute)": [[2, "gssapi.exceptions.BadNameError.ROUTINE_CODE", false]], "routine_code (badnametypeerror attribute)": [[2, "gssapi.exceptions.BadNameTypeError.ROUTINE_CODE", false]], "routine_code (badqoperror attribute)": [[2, "gssapi.exceptions.BadQoPError.ROUTINE_CODE", false]], "routine_code (badstatuserror attribute)": [[2, "gssapi.exceptions.BadStatusError.ROUTINE_CODE", false]], "routine_code (duplicatecredentialselementerror attribute)": [[2, "gssapi.exceptions.DuplicateCredentialsElementError.ROUTINE_CODE", false]], "routine_code (expiredcontexterror attribute)": [[2, "gssapi.exceptions.ExpiredContextError.ROUTINE_CODE", false]], "routine_code (expiredcredentialserror attribute)": [[2, "gssapi.exceptions.ExpiredCredentialsError.ROUTINE_CODE", false]], "routine_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.routine_code", false], [3, "gssapi.raw.misc.GSSError.routine_code", false]], "routine_code (invalidcredentialserror attribute)": [[2, "gssapi.exceptions.InvalidCredentialsError.ROUTINE_CODE", false]], "routine_code (invalidtokenerror attribute)": [[2, "gssapi.exceptions.InvalidTokenError.ROUTINE_CODE", false]], "routine_code (mechanismnamerequirederror attribute)": [[2, "gssapi.exceptions.MechanismNameRequiredError.ROUTINE_CODE", false]], "routine_code (missingcontexterror attribute)": [[2, "gssapi.exceptions.MissingContextError.ROUTINE_CODE", false]], "routine_code (missingcredentialserror attribute)": [[2, "gssapi.exceptions.MissingCredentialsError.ROUTINE_CODE", false]], "routine_code (operationunavailableerror attribute)": [[2, "gssapi.exceptions.OperationUnavailableError.ROUTINE_CODE", false]], "routine_code (unauthorizederror attribute)": [[2, "gssapi.exceptions.UnauthorizedError.ROUTINE_CODE", false]], "sasl_mech_name (inquiresaslnameresult attribute)": [[3, "gssapi.raw.named_tuples.InquireSASLNameResult.sasl_mech_name", false]], "seal_alg (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.seal_alg", false]], "securitycontext (class in gssapi.raw.sec_contexts)": [[3, "gssapi.raw.sec_contexts.SecurityContext", false]], "securitycontext (class in gssapi.sec_contexts)": [[2, "gssapi.sec_contexts.SecurityContext", false]], "send_seq (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.send_seq", false]], "set_cred_option() (in module gssapi.raw.ext_set_cred_opt)": [[3, "gssapi.raw.ext_set_cred_opt.set_cred_option", false]], "set_encoding() (in module gssapi)": [[2, "gssapi.set_encoding", false]], "set_name_attribute() (in module gssapi.raw.ext_rfc6680)": [[3, "gssapi.raw.ext_rfc6680.set_name_attribute", false]], "set_neg_mechs() (in module gssapi.raw.ext_rfc4178)": [[3, "gssapi.raw.ext_rfc4178.set_neg_mechs", false]], "set_sec_context_option() (in module gssapi.raw.ext_ggf)": [[3, "gssapi.raw.ext_ggf.set_sec_context_option", false]], "short_desc (displayattrresult attribute)": [[3, "gssapi.raw.named_tuples.DisplayAttrResult.short_desc", false]], "sign_alg (rfc1964keydata attribute)": [[3, "gssapi.raw.named_tuples.Rfc1964KeyData.sign_alg", false]], "sign_only (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.sign_only", false]], "step() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.step", false]], "store() (credentials method)": [[2, "gssapi.creds.Credentials.store", false]], "store_cred() (in module gssapi.raw.ext_rfc5588)": [[3, "gssapi.raw.ext_rfc5588.store_cred", false]], "store_cred_into() (in module gssapi.raw.ext_cred_store)": [[3, "gssapi.raw.ext_cred_store.store_cred_into", false]], "storecredresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.StoreCredResult", false]], "stream (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.stream", false]], "string_uid (nametype attribute)": [[2, "gssapi.NameType.string_uid", false], [3, "gssapi.raw.types.NameType.string_uid", false]], "supplementary_code (duplicatetokenerror attribute)": [[2, "gssapi.exceptions.DuplicateTokenError.SUPPLEMENTARY_CODE", false]], "supplementary_code (expiredtokenerror attribute)": [[2, "gssapi.exceptions.ExpiredTokenError.SUPPLEMENTARY_CODE", false]], "supplementary_code (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.supplementary_code", false], [3, "gssapi.raw.misc.GSSError.supplementary_code", false]], "supplementary_code (tokentooearlyerror attribute)": [[2, "gssapi.exceptions.TokenTooEarlyError.SUPPLEMENTARY_CODE", false]], "supplementary_code (tokentoolateerror attribute)": [[2, "gssapi.exceptions.TokenTooLateError.SUPPLEMENTARY_CODE", false]], "supplementaryerror": [[2, "gssapi.exceptions.SupplementaryError", false], [3, "gssapi.raw.exceptions.SupplementaryError", false]], "target_name (inquirecontextresult attribute)": [[3, "gssapi.raw.named_tuples.InquireContextResult.target_name", false]], "target_name (securitycontext property)": [[2, "gssapi.sec_contexts.SecurityContext.target_name", false]], "token (acceptseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.AcceptSecContextResult.token", false]], "token (gsserror attribute)": [[3, "gssapi.raw.exceptions.GSSError.token", false], [3, "gssapi.raw.misc.GSSError.token", false]], "token (initseccontextresult attribute)": [[3, "gssapi.raw.named_tuples.InitSecContextResult.token", false]], "tokenoutofsequenceerror": [[2, "gssapi.exceptions.TokenOutOfSequenceError", false], [3, "gssapi.raw.exceptions.TokenOutOfSequenceError", false]], "tokenreaderror": [[2, "gssapi.exceptions.TokenReadError", false], [3, "gssapi.raw.exceptions.TokenReadError", false]], "tokentooearlyerror": [[2, "gssapi.exceptions.TokenTooEarlyError", false], [3, "gssapi.raw.exceptions.TokenTooEarlyError", false]], "tokentoolateerror": [[2, "gssapi.exceptions.TokenTooLateError", false], [3, "gssapi.raw.exceptions.TokenTooLateError", false]], "trailer (iovbuffertype attribute)": [[3, "gssapi.raw.ext_dce.IOVBufferType.trailer", false]], "transferable (requirementflag attribute)": [[3, "gssapi.raw.types.RequirementFlag.transferable", false]], "type (iovbuffer attribute)": [[3, "gssapi.raw.ext_dce.IOVBuffer.type", false]], "unauthorizederror": [[2, "gssapi.exceptions.UnauthorizedError", false], [3, "gssapi.raw.exceptions.UnauthorizedError", false]], "unknownusageerror": [[2, "gssapi.exceptions.UnknownUsageError", false]], "unwrap() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.unwrap", false]], "unwrap() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.unwrap", false]], "unwrap_aead() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.unwrap_aead", false]], "unwrap_iov() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.unwrap_iov", false]], "unwrapresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.UnwrapResult", false]], "usage (credentials property)": [[2, "gssapi.creds.Credentials.usage", false]], "usage (inquirecredbymechresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredByMechResult.usage", false]], "usage (inquirecredresult attribute)": [[3, "gssapi.raw.named_tuples.InquireCredResult.usage", false]], "usage (storecredresult attribute)": [[3, "gssapi.raw.named_tuples.StoreCredResult.usage", false]], "user (nametype attribute)": [[2, "gssapi.NameType.user", false], [3, "gssapi.raw.types.NameType.user", false]], "value (iovbuffer attribute)": [[3, "gssapi.raw.ext_dce.IOVBuffer.value", false]], "values (getnameattributeresult attribute)": [[3, "gssapi.raw.named_tuples.GetNameAttributeResult.values", false]], "verify_mic() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.verify_mic", false]], "verify_mic_iov() (in module gssapi.raw.ext_iov_mic)": [[3, "gssapi.raw.ext_iov_mic.verify_mic_iov", false]], "verify_signature() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.verify_signature", false]], "version (krb5lucidcontextv1 property)": [[3, "gssapi.raw.ext_krb5.Krb5LucidContextV1.version", false]], "wrap() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.wrap", false]], "wrap() (securitycontext method)": [[2, "gssapi.sec_contexts.SecurityContext.wrap", false]], "wrap_aead() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.wrap_aead", false]], "wrap_iov() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.wrap_iov", false]], "wrap_iov_length() (in module gssapi.raw.ext_dce)": [[3, "gssapi.raw.ext_dce.wrap_iov_length", false]], "wrap_size_limit() (in module gssapi.raw.message)": [[3, "gssapi.raw.message.wrap_size_limit", false]], "wrapresult (class in gssapi.raw.named_tuples)": [[3, "gssapi.raw.named_tuples.WrapResult", false]], "x25 (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.x25", false]], "xerox_ns (addresstype attribute)": [[3, "gssapi.raw.types.AddressType.xerox_ns", false]]}, "objects": {"": [[2, 0, 0, "-", "gssapi"]], "gssapi": [[2, 1, 1, "", "AddressType"], [2, 1, 1, "", "IntEnumFlagSet"], [2, 1, 1, "", "MechType"], [2, 1, 1, "", "NameType"], [2, 1, 1, "", "OID"], [2, 1, 1, "", "RequirementFlag"], [2, 0, 0, "-", "creds"], [2, 0, 0, "-", "exceptions"], [2, 0, 0, "-", "names"], [3, 0, 0, "-", "raw"], [2, 0, 0, "-", "sec_contexts"], [2, 6, 1, "", "set_encoding"]], "gssapi.MechType": [[2, 2, 1, "", "kerberos"]], "gssapi.NameType": [[2, 2, 1, "", "anonymous"], [2, 2, 1, "", "composite_export"], [2, 2, 1, "", "export"], [2, 2, 1, "", "hostbased_service"], [2, 2, 1, "", "kerberos_principal"], [2, 2, 1, "", "krb5_nt_principal_name"], [2, 2, 1, "", "machine_uid"], [2, 2, 1, "", "string_uid"], [2, 2, 1, "", "user"]], "gssapi.creds": [[2, 1, 1, "", "Credentials"]], "gssapi.creds.Credentials": [[2, 3, 1, "", "acquire"], [2, 3, 1, "", "add"], [2, 3, 1, "", "export"], [2, 3, 1, "", "impersonate"], [2, 3, 1, "", "inquire"], [2, 3, 1, "", "inquire_by_mech"], [2, 4, 1, "", "lifetime"], [2, 4, 1, "", "mechs"], [2, 4, 1, "", "name"], [2, 3, 1, "", "store"], [2, 4, 1, "", "usage"]], "gssapi.exceptions": [[2, 5, 1, "", "BadChannelBindingsError"], [2, 5, 1, "", "BadMICError"], [2, 5, 1, "", "BadMechanismError"], [2, 5, 1, "", "BadNameError"], [2, 5, 1, "", "BadNameTypeError"], [2, 5, 1, "", "BadQoPError"], [2, 5, 1, "", "BadStatusError"], [2, 5, 1, "", "ContextReadError"], [2, 5, 1, "", "ContextWriteError"], [2, 5, 1, "", "CredentialsReadError"], [2, 5, 1, "", "CredentialsWriteError"], [2, 5, 1, "", "DuplicateCredentialsElementError"], [2, 5, 1, "", "DuplicateTokenError"], [2, 5, 1, "", "EncryptionNotUsed"], [2, 5, 1, "", "ExpiredContextError"], [2, 5, 1, "", "ExpiredCredentialsError"], [2, 5, 1, "", "ExpiredTokenError"], [2, 5, 1, "", "GSSError"], [2, 5, 1, "", "GeneralError"], [2, 5, 1, "", "InvalidCredentialsError"], [2, 5, 1, "", "InvalidTokenError"], [2, 5, 1, "", "MalformedParameterError"], [2, 5, 1, "", "MechanismNameRequiredError"], [2, 5, 1, "", "MissingContextError"], [2, 5, 1, "", "MissingCredentialsError"], [2, 5, 1, "", "NameReadError"], [2, 5, 1, "", "NameTypeReadError"], [2, 5, 1, "", "OperationUnavailableError"], [2, 5, 1, "", "ParameterReadError"], [2, 5, 1, "", "ParameterWriteError"], [2, 5, 1, "", "SupplementaryError"], [2, 5, 1, "", "TokenOutOfSequenceError"], [2, 5, 1, "", "TokenReadError"], [2, 5, 1, "", "TokenTooEarlyError"], [2, 5, 1, "", "TokenTooLateError"], [2, 5, 1, "", "UnauthorizedError"], [2, 5, 1, "", "UnknownUsageError"]], "gssapi.exceptions.BadChannelBindingsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadMICError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadMechanismError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadNameError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadNameTypeError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadQoPError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.BadStatusError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.DuplicateCredentialsElementError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.DuplicateTokenError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.EncryptionNotUsed": [[2, 2, 1, "", "MAJOR_MESSAGE"]], "gssapi.exceptions.ExpiredContextError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.ExpiredCredentialsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.ExpiredTokenError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.GSSError": [[2, 2, 1, "", "MESSAGE"], [2, 3, 1, "", "gen_message"], [2, 3, 1, "", "get_all_statuses"]], "gssapi.exceptions.GeneralError": [[2, 2, 1, "", "FMT_STR"], [2, 2, 1, "", "MAJOR_MESSAGE"]], "gssapi.exceptions.InvalidCredentialsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.InvalidTokenError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.MalformedParameterError": [[2, 2, 1, "", "CALLING_CODE"]], "gssapi.exceptions.MechanismNameRequiredError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.MissingContextError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.MissingCredentialsError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.OperationUnavailableError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.ParameterReadError": [[2, 2, 1, "", "CALLING_CODE"]], "gssapi.exceptions.ParameterWriteError": [[2, 2, 1, "", "CALLING_CODE"]], "gssapi.exceptions.TokenTooEarlyError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.TokenTooLateError": [[2, 2, 1, "", "SUPPLEMENTARY_CODE"]], "gssapi.exceptions.UnauthorizedError": [[2, 2, 1, "", "ROUTINE_CODE"]], "gssapi.exceptions.UnknownUsageError": [[2, 2, 1, "", "MAJOR_MESSAGE"]], "gssapi.names": [[2, 1, 1, "", "Name"]], "gssapi.names.Name": [[2, 4, 1, "", "attributes"], [2, 3, 1, "", "canonicalize"], [2, 3, 1, "", "display_as"], [2, 3, 1, "", "export"], [2, 4, 1, "", "is_mech_name"], [2, 4, 1, "", "mech"], [2, 4, 1, "", "name_type"]], "gssapi.raw": [[3, 0, 0, "-", "chan_bindings"], [3, 0, 0, "-", "creds"], [3, 0, 0, "-", "exceptions"], [3, 0, 0, "-", "ext_cred_imp_exp"], [3, 0, 0, "-", "ext_cred_store"], [3, 0, 0, "-", "ext_dce"], [3, 0, 0, "-", "ext_ggf"], [3, 0, 0, "-", "ext_iov_mic"], [3, 0, 0, "-", "ext_krb5"], [3, 0, 0, "-", "ext_password"], [3, 0, 0, "-", "ext_password_add"], [3, 0, 0, "-", "ext_rfc4178"], [3, 0, 0, "-", "ext_rfc5587"], [3, 0, 0, "-", "ext_rfc5588"], [3, 0, 0, "-", "ext_rfc5801"], [3, 0, 0, "-", "ext_rfc6680"], [3, 0, 0, "-", "ext_s4u"], [3, 0, 0, "-", "ext_set_cred_opt"], [3, 0, 0, "-", "message"], [3, 0, 0, "-", "misc"], [3, 0, 0, "-", "named_tuples"], [3, 0, 0, "-", "names"], [3, 0, 0, "-", "oids"], [3, 0, 0, "-", "sec_contexts"], [3, 0, 0, "-", "types"]], "gssapi.raw.chan_bindings": [[3, 1, 1, "", "ChannelBindings"]], "gssapi.raw.chan_bindings.ChannelBindings": [[3, 2, 1, "", "acceptor_address"], [3, 2, 1, "", "acceptor_address_type"], [3, 2, 1, "", "application_data"], [3, 2, 1, "", "initiator_address"], [3, 2, 1, "", "initiator_address_type"]], "gssapi.raw.creds": [[3, 1, 1, "", "Creds"], [3, 6, 1, "", "acquire_cred"], [3, 6, 1, "", "add_cred"], [3, 6, 1, "", "inquire_cred"], [3, 6, 1, "", "inquire_cred_by_mech"], [3, 6, 1, "", "release_cred"]], "gssapi.raw.exceptions": [[3, 5, 1, "", "BadChannelBindingsError"], [3, 5, 1, "", "BadMICError"], [3, 5, 1, "", "BadMechanismError"], [3, 5, 1, "", "BadNameError"], [3, 5, 1, "", "BadNameTypeError"], [3, 5, 1, "", "BadQoPError"], [3, 5, 1, "", "BadStatusError"], [3, 5, 1, "", "ContextReadError"], [3, 5, 1, "", "ContextWriteError"], [3, 5, 1, "", "CredentialsReadError"], [3, 5, 1, "", "CredentialsWriteError"], [3, 5, 1, "", "DuplicateCredentialsElementError"], [3, 5, 1, "", "DuplicateTokenError"], [3, 5, 1, "", "ExpiredContextError"], [3, 5, 1, "", "ExpiredCredentialsError"], [3, 5, 1, "", "ExpiredTokenError"], [3, 5, 1, "", "GSSError"], [3, 5, 1, "", "InvalidCredentialsError"], [3, 5, 1, "", "InvalidTokenError"], [3, 5, 1, "", "MalformedParameterError"], [3, 5, 1, "", "MechanismNameRequiredError"], [3, 5, 1, "", "MissingContextError"], [3, 5, 1, "", "MissingCredentialsError"], [3, 5, 1, "", "NameReadError"], [3, 5, 1, "", "NameTypeReadError"], [3, 5, 1, "", "OperationUnavailableError"], [3, 5, 1, "", "ParameterReadError"], [3, 5, 1, "", "ParameterWriteError"], [3, 5, 1, "", "SupplementaryError"], [3, 5, 1, "", "TokenOutOfSequenceError"], [3, 5, 1, "", "TokenReadError"], [3, 5, 1, "", "TokenTooEarlyError"], [3, 5, 1, "", "TokenTooLateError"], [3, 5, 1, "", "UnauthorizedError"]], "gssapi.raw.exceptions.GSSError": [[3, 2, 1, "", "calling_code"], [3, 3, 1, "", "gen_message"], [3, 3, 1, "", "get_all_statuses"], [3, 2, 1, "", "maj_code"], [3, 2, 1, "", "min_code"], [3, 2, 1, "", "routine_code"], [3, 2, 1, "", "supplementary_code"], [3, 2, 1, "", "token"]], "gssapi.raw.ext_cred_imp_exp": [[3, 6, 1, "", "export_cred"], [3, 6, 1, "", "import_cred"]], "gssapi.raw.ext_cred_store": [[3, 6, 1, "", "acquire_cred_from"], [3, 6, 1, "", "add_cred_from"], [3, 6, 1, "", "store_cred_into"]], "gssapi.raw.ext_dce": [[3, 1, 1, "", "IOV"], [3, 1, 1, "", "IOVBuffer"], [3, 1, 1, "", "IOVBufferType"], [3, 6, 1, "", "unwrap_aead"], [3, 6, 1, "", "unwrap_iov"], [3, 6, 1, "", "wrap_aead"], [3, 6, 1, "", "wrap_iov"], [3, 6, 1, "", "wrap_iov_length"]], "gssapi.raw.ext_dce.IOV": [[3, 3, 1, "", "count"], [3, 3, 1, "", "index"]], "gssapi.raw.ext_dce.IOVBuffer": [[3, 2, 1, "", "allocate"], [3, 2, 1, "", "type"], [3, 2, 1, "", "value"]], "gssapi.raw.ext_dce.IOVBufferType": [[3, 2, 1, "", "data"], [3, 2, 1, "", "empty"], [3, 2, 1, "", "header"], [3, 2, 1, "", "mech_params"], [3, 2, 1, "", "mic_token"], [3, 2, 1, "", "padding"], [3, 2, 1, "", "sign_only"], [3, 2, 1, "", "stream"], [3, 2, 1, "", "trailer"]], "gssapi.raw.ext_ggf": [[3, 6, 1, "", "inquire_cred_by_oid"], [3, 6, 1, "", "inquire_sec_context_by_oid"], [3, 6, 1, "", "set_sec_context_option"]], "gssapi.raw.ext_iov_mic": [[3, 6, 1, "", "get_mic_iov"], [3, 6, 1, "", "get_mic_iov_length"], [3, 6, 1, "", "verify_mic_iov"]], "gssapi.raw.ext_krb5": [[3, 1, 1, "", "Krb5LucidContext"], [3, 1, 1, "", "Krb5LucidContextV1"], [3, 6, 1, "", "krb5_ccache_name"], [3, 6, 1, "", "krb5_export_lucid_sec_context"], [3, 6, 1, "", "krb5_extract_authtime_from_sec_context"], [3, 6, 1, "", "krb5_extract_authz_data_from_sec_context"], [3, 6, 1, "", "krb5_get_tkt_flags"], [3, 6, 1, "", "krb5_import_cred"], [3, 6, 1, "", "krb5_set_allowable_enctypes"]], "gssapi.raw.ext_krb5.Krb5LucidContextV1": [[3, 4, 1, "", "cfx_kd"], [3, 4, 1, "", "endtime"], [3, 4, 1, "", "is_initiator"], [3, 4, 1, "", "protocol"], [3, 4, 1, "", "recv_seq"], [3, 4, 1, "", "rfc1964_kd"], [3, 4, 1, "", "send_seq"], [3, 4, 1, "", "version"]], "gssapi.raw.ext_password": [[3, 6, 1, "", "acquire_cred_with_password"]], "gssapi.raw.ext_password_add": [[3, 6, 1, "", "add_cred_with_password"]], "gssapi.raw.ext_rfc4178": [[3, 6, 1, "", "set_neg_mechs"]], "gssapi.raw.ext_rfc5587": [[3, 6, 1, "", "display_mech_attr"], [3, 6, 1, "", "indicate_mechs_by_attrs"], [3, 6, 1, "", "inquire_attrs_for_mech"]], "gssapi.raw.ext_rfc5588": [[3, 6, 1, "", "store_cred"]], "gssapi.raw.ext_rfc5801": [[3, 6, 1, "", "inquire_mech_for_saslname"], [3, 6, 1, "", "inquire_saslname_for_mech"]], "gssapi.raw.ext_rfc6680": [[3, 6, 1, "", "delete_name_attribute"], [3, 6, 1, "", "display_name_ext"], [3, 6, 1, "", "export_name_composite"], [3, 6, 1, "", "get_name_attribute"], [3, 6, 1, "", "inquire_name"], [3, 6, 1, "", "set_name_attribute"]], "gssapi.raw.ext_s4u": [[3, 6, 1, "", "acquire_cred_impersonate_name"], [3, 6, 1, "", "add_cred_impersonate_name"]], "gssapi.raw.ext_set_cred_opt": [[3, 6, 1, "", "set_cred_option"]], "gssapi.raw.message": [[3, 6, 1, "", "get_mic"], [3, 6, 1, "", "unwrap"], [3, 6, 1, "", "verify_mic"], [3, 6, 1, "", "wrap"], [3, 6, 1, "", "wrap_size_limit"]], "gssapi.raw.misc": [[3, 5, 1, "", "GSSError"], [3, 1, 1, "", "MechType"], [3, 1, 1, "", "Name"], [3, 1, 1, "", "OID"], [3, 6, 1, "", "indicate_mechs"], [3, 6, 1, "", "inquire_mechs_for_name"], [3, 6, 1, "", "inquire_names_for_mech"]], "gssapi.raw.misc.GSSError": [[3, 2, 1, "", "calling_code"], [3, 3, 1, "", "gen_message"], [3, 3, 1, "", "get_all_statuses"], [3, 2, 1, "", "maj_code"], [3, 2, 1, "", "min_code"], [3, 2, 1, "", "routine_code"], [3, 2, 1, "", "supplementary_code"], [3, 2, 1, "", "token"]], "gssapi.raw.misc.MechType": [[3, 2, 1, "", "kerberos"]], "gssapi.raw.misc.OID": [[3, 4, 1, "", "dotted_form"], [3, 3, 1, "", "from_int_seq"]], "gssapi.raw.named_tuples": [[3, 1, 1, "", "AcceptSecContextResult"], [3, 1, 1, "", "AcquireCredResult"], [3, 1, 1, "", "AddCredResult"], [3, 1, 1, "", "CfxKeyData"], [3, 1, 1, "", "DisplayAttrResult"], [3, 1, 1, "", "DisplayNameResult"], [3, 1, 1, "", "GetNameAttributeResult"], [3, 1, 1, "", "IOVUnwrapResult"], [3, 1, 1, "", "InitSecContextResult"], [3, 1, 1, "", "InquireAttrsResult"], [3, 1, 1, "", "InquireContextResult"], [3, 1, 1, "", "InquireCredByMechResult"], [3, 1, 1, "", "InquireCredResult"], [3, 1, 1, "", "InquireNameResult"], [3, 1, 1, "", "InquireSASLNameResult"], [3, 1, 1, "", "Rfc1964KeyData"], [3, 1, 1, "", "StoreCredResult"], [3, 1, 1, "", "UnwrapResult"], [3, 1, 1, "", "WrapResult"]], "gssapi.raw.named_tuples.AcceptSecContextResult": [[3, 2, 1, "", "context"], [3, 2, 1, "", "delegated_creds"], [3, 2, 1, "", "flags"], [3, 2, 1, "", "initiator_name"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mech"], [3, 2, 1, "", "more_steps"], [3, 2, 1, "", "token"]], "gssapi.raw.named_tuples.AcquireCredResult": [[3, 2, 1, "", "creds"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mechs"]], "gssapi.raw.named_tuples.AddCredResult": [[3, 2, 1, "", "accept_lifetime"], [3, 2, 1, "", "creds"], [3, 2, 1, "", "init_lifetime"], [3, 2, 1, "", "mechs"]], "gssapi.raw.named_tuples.CfxKeyData": [[3, 2, 1, "", "acceptor_subkey"], [3, 2, 1, "", "acceptor_subkey_type"], [3, 2, 1, "", "ctx_key"], [3, 2, 1, "", "ctx_key_type"]], "gssapi.raw.named_tuples.DisplayAttrResult": [[3, 2, 1, "", "long_desc"], [3, 2, 1, "", "name"], [3, 2, 1, "", "short_desc"]], "gssapi.raw.named_tuples.DisplayNameResult": [[3, 2, 1, "", "name"], [3, 2, 1, "", "name_type"]], "gssapi.raw.named_tuples.GetNameAttributeResult": [[3, 2, 1, "", "authenticated"], [3, 2, 1, "", "complete"], [3, 2, 1, "", "display_values"], [3, 2, 1, "", "values"]], "gssapi.raw.named_tuples.IOVUnwrapResult": [[3, 2, 1, "", "encrypted"], [3, 2, 1, "", "qop"]], "gssapi.raw.named_tuples.InitSecContextResult": [[3, 2, 1, "", "context"], [3, 2, 1, "", "flags"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mech"], [3, 2, 1, "", "more_steps"], [3, 2, 1, "", "token"]], "gssapi.raw.named_tuples.InquireAttrsResult": [[3, 2, 1, "", "known_mech_attrs"], [3, 2, 1, "", "mech_attrs"]], "gssapi.raw.named_tuples.InquireContextResult": [[3, 2, 1, "", "complete"], [3, 2, 1, "", "flags"], [3, 2, 1, "", "initiator_name"], [3, 2, 1, "", "lifetime"], [3, 2, 1, "", "locally_init"], [3, 2, 1, "", "mech"], [3, 2, 1, "", "target_name"]], "gssapi.raw.named_tuples.InquireCredByMechResult": [[3, 2, 1, "", "accept_lifetime"], [3, 2, 1, "", "init_lifetime"], [3, 2, 1, "", "name"], [3, 2, 1, "", "usage"]], "gssapi.raw.named_tuples.InquireCredResult": [[3, 2, 1, "", "lifetime"], [3, 2, 1, "", "mechs"], [3, 2, 1, "", "name"], [3, 2, 1, "", "usage"]], "gssapi.raw.named_tuples.InquireNameResult": [[3, 2, 1, "", "attrs"], [3, 2, 1, "", "is_mech_name"], [3, 2, 1, "", "mech"]], "gssapi.raw.named_tuples.InquireSASLNameResult": [[3, 2, 1, "", "mech_description"], [3, 2, 1, "", "mech_name"], [3, 2, 1, "", "sasl_mech_name"]], "gssapi.raw.named_tuples.Rfc1964KeyData": [[3, 2, 1, "", "key"], [3, 2, 1, "", "key_type"], [3, 2, 1, "", "seal_alg"], [3, 2, 1, "", "sign_alg"]], "gssapi.raw.named_tuples.StoreCredResult": [[3, 2, 1, "", "mechs"], [3, 2, 1, "", "usage"]], "gssapi.raw.named_tuples.UnwrapResult": [[3, 2, 1, "", "encrypted"], [3, 2, 1, "", "message"], [3, 2, 1, "", "qop"]], "gssapi.raw.named_tuples.WrapResult": [[3, 2, 1, "", "encrypted"], [3, 2, 1, "", "message"]], "gssapi.raw.names": [[3, 1, 1, "", "Name"], [3, 6, 1, "", "canonicalize_name"], [3, 6, 1, "", "compare_name"], [3, 6, 1, "", "display_name"], [3, 6, 1, "", "duplicate_name"], [3, 6, 1, "", "export_name"], [3, 6, 1, "", "import_name"], [3, 6, 1, "", "release_name"]], "gssapi.raw.oids": [[3, 1, 1, "", "OID"]], "gssapi.raw.oids.OID": [[3, 4, 1, "", "dotted_form"], [3, 3, 1, "", "from_int_seq"]], "gssapi.raw.sec_contexts": [[3, 1, 1, "", "SecurityContext"], [3, 6, 1, "", "accept_sec_context"], [3, 6, 1, "", "context_time"], [3, 6, 1, "", "delete_sec_context"], [3, 6, 1, "", "export_sec_context"], [3, 6, 1, "", "import_sec_context"], [3, 6, 1, "", "init_sec_context"], [3, 6, 1, "", "inquire_context"], [3, 6, 1, "", "process_context_token"]], "gssapi.raw.types": [[3, 1, 1, "", "AddressType"], [3, 1, 1, "", "GenericFlagSet"], [3, 1, 1, "", "IntEnumFlagSet"], [3, 1, 1, "", "MechType"], [3, 1, 1, "", "NameType"], [3, 1, 1, "", "RequirementFlag"]], "gssapi.raw.types.AddressType": [[3, 2, 1, "", "appletalk"], [3, 2, 1, "", "arpanet"], [3, 2, 1, "", "bisync"], [3, 2, 1, "", "ccitt"], [3, 2, 1, "", "chaos"], [3, 2, 1, "", "datakit"], [3, 2, 1, "", "decnet"], [3, 2, 1, "", "dli"], [3, 2, 1, "", "dss"], [3, 2, 1, "", "ecma"], [3, 2, 1, "", "hyperchannel"], [3, 2, 1, "", "ibm_sna"], [3, 2, 1, "", "ip"], [3, 2, 1, "", "lat"], [3, 2, 1, "", "local"], [3, 2, 1, "", "nbs"], [3, 2, 1, "", "null"], [3, 2, 1, "", "osi_tp4"], [3, 2, 1, "", "pup"], [3, 2, 1, "", "x25"], [3, 2, 1, "", "xerox_ns"]], "gssapi.raw.types.GenericFlagSet": [[3, 2, 1, "", "MAX_VAL"], [3, 3, 1, "", "add"], [3, 3, 1, "", "discard"]], "gssapi.raw.types.MechType": [[3, 2, 1, "", "kerberos"]], "gssapi.raw.types.NameType": [[3, 2, 1, "", "anonymous"], [3, 2, 1, "", "composite_export"], [3, 2, 1, "", "export"], [3, 2, 1, "", "hostbased_service"], [3, 2, 1, "", "kerberos_principal"], [3, 2, 1, "", "krb5_nt_principal_name"], [3, 2, 1, "", "machine_uid"], [3, 2, 1, "", "string_uid"], [3, 2, 1, "", "user"]], "gssapi.raw.types.RequirementFlag": [[3, 2, 1, "", "anonymity"], [3, 2, 1, "", "channel_bound"], [3, 2, 1, "", "confidentiality"], [3, 2, 1, "", "dce_style"], [3, 2, 1, "", "delegate_to_peer"], [3, 2, 1, "", "extended_error"], [3, 2, 1, "", "identify"], [3, 2, 1, "", "integrity"], [3, 2, 1, "", "mutual_authentication"], [3, 2, 1, "", "ok_as_delegate"], [3, 2, 1, "", "out_of_sequence_detection"], [3, 2, 1, "", "protection_ready"], [3, 2, 1, "", "replay_detection"], [3, 2, 1, "", "transferable"]], "gssapi.sec_contexts": [[2, 1, 1, "", "SecurityContext"]], "gssapi.sec_contexts.SecurityContext": [[2, 4, 1, "", "actual_flags"], [2, 4, 1, "", "complete"], [2, 3, 1, "", "decrypt"], [2, 4, 1, "", "delegated_creds"], [2, 3, 1, "", "encrypt"], [2, 3, 1, "", "export"], [2, 3, 1, "", "get_signature"], [2, 3, 1, "", "get_wrap_size_limit"], [2, 4, 1, "", "initiator_name"], [2, 4, 1, "", "lifetime"], [2, 4, 1, "", "locally_initiated"], [2, 4, 1, "", "mech"], [2, 3, 1, "", "process_token"], [2, 3, 1, "", "step"], [2, 4, 1, "", "target_name"], [2, 3, 1, "", "unwrap"], [2, 3, 1, "", "verify_signature"], [2, 3, 1, "", "wrap"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "exception", "Python exception"], "6": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:exception", "6": "py:function"}, "terms": {"": [0, 2, 3], "0": [0, 3], "00": 3, "01": 3, "1": [0, 2, 3], "10": 3, "1048576": 2, "11": 3, "1114112": 2, "113554": [0, 2], "1179648": 2, "12": 3, "128": 3, "13": [2, 3], "131072": 2, "14": 3, "15": 3, "16": [2, 3], "16384": 3, "167": 0, "16777216": 2, "17": 3, "18": 3, "19": 3, "196608": 2, "2": [0, 2, 3], "2048": 3, "21": 3, "255": 3, "256": 3, "262144": 2, "2744": 4, "29": 3, "295": 0, "3": [2, 3], "32": 3, "32768": 3, "327680": 2, "33554432": 2, "393216": 2, "4": [0, 2, 3], "4096": 3, "43": 3, "458752": 2, "5": [0, 2, 3], "50331648": 2, "524288": 2, "5588": 2, "589824": 2, "6": [2, 3], "64": 3, "655": 3, "65536": 2, "655360": 2, "6680": 2, "7": 3, "7165": 3, "720896": 2, "752": 3, "786432": 2, "8": [2, 3], "8192": 3, "840": [0, 2], "9": 3, "917504": 2, "983040": 2, "A": [2, 3, 6], "AND": 3, "As": [0, 3], "By": 2, "For": [0, 2, 3], "If": [0, 1, 2, 3], "In": [0, 2, 3], "It": [1, 2, 3], "NOT": 3, "No": 2, "OR": 3, "One": 3, "The": [0, 2, 3, 4], "There": [0, 3], "These": [0, 2, 3], "To": [0, 3, 4, 6], "_": 0, "__defer_step_errors__": 2, "_util": 0, "abl": 3, "about": [2, 3], "abov": [0, 2], "absent": 3, "abstract": 2, "accept": [0, 1, 2, 3], "accept_lifetim": [2, 3], "accept_sec_context": 3, "acceptor": [2, 3], "acceptor_address": 3, "acceptor_address_typ": 3, "acceptor_cr": 3, "acceptor_subkei": 3, "acceptor_subkey_typ": 3, "acceptseccontextresult": 3, "access": [0, 4], "accord": 2, "account": 2, "acquir": [0, 2], "acquire_cr": 3, "acquire_cred_from": [1, 3], "acquire_cred_impersonate_nam": 3, "acquire_cred_with_password": 3, "acquirecredimpersonatenam": 3, "acquirecredresult": [2, 3], "across": 2, "act": 2, "action": 0, "activ": 0, "actual": [2, 3], "actual_flag": 2, "ad": [2, 3], "ad_typ": 3, "add": [2, 3], "add_cr": 3, "add_cred_from": [1, 3], "add_cred_impersonate_nam": 3, "add_cred_with_password": 3, "addcredresult": 3, "addit": 2, "addition": [2, 3, 4], "addprinc": 0, "address": 3, "addresstyp": [2, 3], "after": 3, "again": 3, "against": 3, "algorithm": 3, "all": [2, 3], "alloc": 3, "allow": [0, 1, 2, 3], "along": 2, "alreadi": [0, 3], "also": [0, 2, 3], "although": 0, "alwai": 2, "amount": [2, 3], "an": [0, 1, 2, 3, 4], "ani": [0, 1, 2, 3], "anonym": [2, 3], "anoth": [2, 3], "api": [0, 4], "appletalk": 3, "appli": 3, "applic": [0, 1, 3], "application_data": 3, "appropri": [2, 3], "ar": [0, 1, 2, 3, 4], "arbitrari": 3, "arg": [0, 2, 3], "argument": [2, 3], "around": 4, "arpanet": 3, "aspect": [1, 3], "assign": 2, "associ": [0, 2, 3], "assum": 0, "asynchron": [2, 3], "attach": 2, "attempt": [2, 3], "attr": 3, "attribut": 2, "auth": 3, "authent": 3, "author": 3, "authtim": 3, "authz": 3, "auto_alloc": 3, "automat": [2, 3], "avail": [0, 2, 3, 4], "b": 0, "back": 3, "badchannelbindingserror": [2, 3], "badmechanismerror": [2, 3], "badmicerror": [2, 3], "badnameerror": [2, 3], "badnametypeerror": [2, 3], "badqoperror": [2, 3], "badstatuserror": [2, 3], "base": [0, 2, 3], "basic": [3, 6], "been": [2, 3], "befor": 3, "begin": 2, "behavior": 2, "behaviour": [2, 3], "behind": 3, "being": [2, 3], "below": 2, "ber": 3, "between": [0, 2, 3], "bind": 3, "bisync": 3, "bit": 3, "bitwis": 3, "bool": [2, 3], "both": [0, 1, 2, 3], "bound": 3, "boundari": 2, "break": [0, 2], "buffer": 3, "bundl": 3, "byte": [2, 3], "c": [2, 3, 4], "cach": [0, 1, 3], "calcul": [2, 3], "call": [0, 1, 2, 3], "caller": 3, "calling_cod": [2, 3], "can": [0, 1, 2, 3], "cannot": [0, 2, 3], "canon": 3, "canonic": [0, 2, 3], "canonicalize_nam": 3, "case": [0, 2, 3], "caus": 3, "ccach": 3, "ccitt": 3, "certain": [3, 4], "cfx_kd": 3, "cfxkeydata": 3, "chan_bind": 3, "chang": 3, "channel": 3, "channel_bind": [2, 3], "channel_bound": 3, "channelbind": [2, 3], "chao": 3, "check": [0, 3, 4, 6], "check_last_err": 0, "class": 3, "classmethod": [2, 3], "clear": 3, "client": [1, 3], "client_ctx": 0, "client_tok": 0, "close": 3, "closest": 3, "code": [2, 3], "command": 0, "common": [3, 5], "commonli": [0, 1, 3], "commun": 0, "compar": [0, 3], "compare_nam": 3, "comparison": 3, "compat": [2, 3], "compil": 3, "complet": [0, 2, 3], "compon": 3, "compos": 3, "composit": [2, 3], "composite_export": [2, 3], "comput": 3, "concept": 0, "condit": 2, "confidenti": [0, 2, 3], "config": 3, "confirm": 2, "connect": 0, "consid": 2, "consist": 3, "consol": 0, "constrain": 2, "constructor": [0, 2, 3], "contain": [0, 1, 2, 3, 5], "context": 1, "context_tim": 3, "contextreaderror": [2, 3], "contextwriteerror": [2, 3], "contig": 3, "continu": 3, "control": [0, 1, 2, 3], "conveni": [0, 2], "convert": [2, 3], "copi": [2, 3], "correspond": [0, 2, 3, 4], "could": [0, 2, 3], "count": 3, "counterpart": 3, "coupl": 2, "creat": [0, 2, 3], "cred": [0, 2, 3], "cred_hand": 3, "cred_handl": 3, "cred_imp_exp": 2, "cred_stor": 2, "credenti": 5, "credentialsreaderror": [2, 3], "credentialss": 3, "credentialswriteerror": [2, 3], "criteria": 3, "critical_mech_attr": 3, "crypto": 3, "ctx": 2, "ctx_kei": 3, "ctx_key_typ": 3, "current": [0, 2, 3, 4], "custom": 1, "data": 3, "datakit": 3, "dce_styl": 3, "deactiv": 3, "dealloc": 3, "decnet": 3, "decod": 2, "decrypt": [0, 2, 3], "default": [0, 1, 2, 3], "defin": [1, 4], "deleg": 2, "delegate_to_p": [2, 3], "delegated_cr": [2, 3], "delet": 3, "delete_name_attribut": 3, "delete_sec_context": 3, "denot": 2, "depend": 3, "deprec": [2, 3], "deriv": 3, "descript": 3, "design": 0, "desir": [2, 3], "desired_aspect": 3, "desired_mech_attr": 3, "desired_output_s": 2, "destin": 1, "destroi": 3, "detail": [1, 2], "detect": 2, "determin": [2, 3], "dict": [2, 3], "dict_stor": 3, "dictionari": [2, 3], "differ": [0, 1, 2, 3], "dir": 1, "direct": 3, "directli": [2, 3, 5], "disabl": 2, "discard": 3, "displai": [2, 3], "display_a": 2, "display_mech_attr": 3, "display_nam": 3, "display_name_ext": 3, "display_valu": 3, "displayattrresult": 3, "displaynameresult": 3, "dli": 3, "do": [2, 3], "doc": 0, "document": [1, 3, 4], "doe": [2, 3], "domain": 2, "dot": 3, "dotted_form": 3, "draft": 3, "dss": 3, "duplic": 3, "duplicate_nam": 3, "duplicatecredentialselementerror": [2, 3], "duplicatetokenerror": [2, 3], "dure": 3, "e": [0, 2, 3], "each": [0, 1], "ecma": 3, "effect": 0, "either": [0, 2, 3], "element": 3, "ellipsi": 3, "empti": 3, "enc": [2, 3], "encod": [2, 3], "encrpyt": 3, "encrypt": [0, 2, 3], "encrypted_messag": 0, "encryptionnotus": [0, 2], "enctyp": 3, "end": 2, "endtim": 3, "engert": 3, "engin": 3, "ensur": [0, 2], "entir": 3, "entiti": [0, 3], "enum": 3, "enumer": 2, "environ": [2, 3, 5], "equal": 3, "equival": 3, "error": [2, 3], "essenti": 3, "establis": 3, "establish": [0, 1, 2, 3], "etc": [2, 3], "even": [2, 3], "exactli": 3, "exampl": 3, "except": 0, "except_mech_attr": 3, "exchang": [0, 3], "exist": [1, 2, 3], "expect": [2, 3], "expir": 3, "expiredcontexterror": [2, 3], "expiredcredentialserror": [2, 3], "expiredtokenerror": [2, 3], "export": 2, "export_cr": 3, "export_nam": 3, "export_name_composit": 3, "export_sec_context": 3, "express": 5, "ext_cred_stor": 1, "ext_dc": 3, "extend": 3, "extended_error": 3, "extens": [2, 4, 5], "extract": 3, "extract_keytab": 0, "f": 0, "fail": 3, "failsaf": 3, "failur": 3, "fals": [0, 2, 3], "field": 3, "file": [0, 1, 3], "final": 3, "finer": 1, "finish": [0, 3], "first": [0, 3], "flag": [2, 3], "fmt_str": 2, "follow": [2, 3, 6], "form": [0, 1, 2, 3], "format": [1, 2], "former": 3, "found": 3, "four": 2, "fqdn": 0, "free": 3, "freed": 3, "from": [0, 1, 2, 3, 4], "from_int_seq": 3, "frozenset": 2, "full": 3, "fulli": [2, 3], "func": 0, "function": [0, 1, 2, 3, 4, 5], "further": 3, "g": [2, 3], "gen_messag": [2, 3], "gener": [0, 2, 3], "generalerror": 2, "genericflagset": [2, 3], "get": [0, 2, 3, 4, 6], "get_all_status": [2, 3], "get_mic": 3, "get_mic_iov": 3, "get_mic_iov_length": 3, "get_name_attribut": 3, "get_signatur": 2, "get_wrap_size_limit": 2, "getfqdn": 0, "getnameattributeresult": 3, "give": 3, "given": [2, 3], "go": 3, "goe": 3, "gss_c_af_unspec": 3, "gss_c_deleg_policy_flag": 2, "gss_c_empty_buff": 3, "gss_c_no_credenti": 3, "gss_c_no_nam": 3, "gss_krb5_cred_no_ci_flags_x": 3, "gss_krb5_inq_sspi_session_key_oid": 3, "gss_set_cred_opt": 3, "gssapi": [1, 2, 3, 6], "gssapi_consol": 0, "gsserror": [2, 3], "gsssapi": 3, "ha": [0, 1, 2, 3], "handl": [0, 3], "handle_the_issu": 2, "happen": 2, "hashabl": 3, "have": [0, 3], "he": 3, "header": 3, "heimdal": 3, "help": 0, "here": [0, 2], "high": [3, 4], "holder": 3, "host": 0, "hostbased_servic": [0, 2, 3], "how": 3, "howev": [1, 2, 3], "html": 3, "http": [0, 3], "human": [2, 3], "hyperchannel": 3, "i": [0, 1, 2, 3, 4, 5], "ibm_sna": 3, "ident": 0, "identif": 0, "identifi": [0, 1, 3], "ietf": 3, "imperson": [2, 3], "impersonator_cr": 3, "implement": [1, 2, 3, 5], "impli": 3, "import": [0, 2], "import_cr": 3, "import_nam": 3, "import_sec_context": 3, "includ": [2, 3], "incorrect": 2, "indefinit": [0, 2, 3], "index": [3, 4], "indic": [0, 1, 2, 3], "indicate_mech": 3, "indicate_mechs_by_attr": 3, "influenc": 5, "info": 3, "inform": [0, 2, 3], "informm": 3, "inherit": 2, "init_lifetim": [2, 3], "init_sec_context": 3, "initi": [0, 1, 2, 3], "initial_client_token": 0, "initial_server_token": 0, "initialis": 3, "initiator_address": 3, "initiator_address_typ": 3, "initiator_nam": [2, 3], "initseccontext": 3, "initseccontextresult": 3, "input": [2, 3], "input_cr": 3, "input_token": [2, 3], "inquir": [2, 3], "inquire_attrs_for_mech": 3, "inquire_by_mech": 2, "inquire_context": 3, "inquire_cr": 3, "inquire_cred_by_mech": 3, "inquire_cred_by_oid": 3, "inquire_mech_for_saslnam": 3, "inquire_mechs_for_nam": 3, "inquire_nam": 3, "inquire_names_for_mech": 3, "inquire_saslname_for_mech": 3, "inquire_sec_context_by_oid": 3, "inquireattrsresult": 3, "inquirecontextresult": 3, "inquirecredbymechresult": [2, 3], "inquirecredresult": [2, 3], "inquirenameresult": 3, "inquiresaslnameresult": 3, "inquiri": 3, "inspect": [2, 3], "instal": 0, "instanc": [0, 3], "instead": [2, 3], "int": [2, 3], "int32": 3, "integ": 3, "integer_sequ": 3, "integr": [0, 3], "intenum": [2, 3], "intenumflagset": [2, 3], "interact": [0, 2], "interfac": [0, 1], "intern": 3, "interoper": 3, "interpret": 0, "intiat": 2, "introduc": 1, "introduct": 6, "invalidcredentialserror": [2, 3], "invalidtokenerror": [2, 3], "iovbuff": 3, "iovbuffertyp": 3, "iovunwrapresult": 3, "ip": 3, "is_initi": 3, "is_maj": [2, 3], "is_mech_nam": [2, 3], "is_name_mech": 3, "issu": 5, "iter": [2, 3], "its": 3, "itself": 3, "jump": 4, "just": [0, 3], "kcm": 1, "kdc": 2, "keep": 2, "kei": [1, 2, 3], "kerbero": [0, 2], "kerberos_princip": [2, 3], "key_typ": 3, "keydata": 3, "keyr": 1, "keytab": [0, 3], "keytab_princip": 3, "keyword": 1, "kinit": 0, "kitten": 3, "know": [0, 3], "known": 3, "known_mech_attr": 3, "krb5": [0, 2, 3], "krb5_ccach": 3, "krb5_ccache_nam": 3, "krb5_export_lucid_sec_context": 3, "krb5_extract_authtime_from_sec_context": 3, "krb5_extract_authz_data_from_sec_context": 3, "krb5_get_tkt_flag": 3, "krb5_import_cr": 3, "krb5_keytab": 3, "krb5_nt_principal_nam": [2, 3], "krb5_princip": 3, "krb5_set_allowable_enctyp": 3, "krb5lucidcontext": 3, "krb5lucidcontextv1": 3, "ktype": 3, "kwarg": [0, 2], "last": [0, 3], "lat": 3, "later": [0, 2, 3], "latter": 3, "layer": 0, "least": 0, "length": 3, "less": [2, 3], "let": [0, 3], "level": 4, "lib": 0, "librari": [0, 3], "lifetim": [0, 2, 3], "like": [0, 1, 2, 3, 5], "limit": 3, "line": 0, "list": [2, 3], "lit": 0, "ll": 0, "local": [2, 3], "local_onli": 3, "locally_init": 3, "locally_initi": 2, "locat": 1, "long": 3, "long_desc": 3, "lookup": [2, 3], "loop": 2, "low": [2, 4], "lump": 3, "machine_uid": [2, 3], "mai": [0, 2, 3], "maj": 2, "maj_cod": [2, 3], "maj_stat": 2, "maj_str": 2, "major": [2, 3], "major_messag": 2, "make": [3, 4], "malformedparametererror": [2, 3], "manipul": 1, "manual": 0, "map": 3, "mark": 3, "match": 3, "max": 3, "max_val": 3, "maximum": [2, 3], "md": 0, "mean": [0, 3], "mech": [0, 2], "mech_attr": 3, "mech_descript": 3, "mech_nam": 3, "mech_param": 3, "mech_set": 3, "mechan": [0, 2], "mechanim": 3, "mechanismnamerequirederror": [2, 3], "mechansim": 3, "mechtyp": [0, 2, 3], "member": 3, "memori": 1, "messag": [0, 2, 3], "method": [0, 2, 3], "mic": 2, "mic_token": 3, "microsoft": [2, 3], "min": 2, "min_cod": [2, 3], "min_stat": 2, "min_str": 2, "minor": [2, 3], "minor_messag": 2, "miovessag": 3, "missingcontexterror": [2, 3], "missingcredentialserror": [2, 3], "mit": [2, 3], "mivehind": 0, "modifi": 3, "modul": [0, 2, 4], "more": [0, 1, 2, 3], "more_step": 3, "most": 0, "msg_encrypt": 0, "multipl": [0, 2, 3], "must": [0, 2, 3], "mutablemap": 2, "mutat": 3, "mutate_input": 3, "mutual_authent": 3, "name1": 3, "name2": 3, "name_typ": [0, 2, 3], "named_tupl": 3, "namereaderror": [2, 3], "namespac": 3, "nametyp": [0, 2, 3], "nametypereaderror": [2, 3], "nb": 3, "necessari": 2, "need": [0, 3], "negot": 2, "negoti": 2, "neither": 2, "net": 0, "never": 2, "new": [2, 3], "newli": 2, "next": 2, "non": [2, 3], "none": [0, 2, 3], "normal": [0, 2, 3], "note": [0, 2, 3], "noth": 3, "notic": 0, "notifi": 3, "now": 0, "ntlm": 3, "ntlmssp": 3, "null": 3, "number": [1, 3], "obj": 2, "object": [0, 2, 3, 4], "obtain": 3, "occur": [2, 3], "offer": 3, "often": 2, "oid": [0, 2, 3], "ok_as_deleg": [2, 3], "old": 3, "onc": 3, "one": 3, "ones": 2, "onli": [1, 2, 3, 4], "opaqu": 3, "open": 3, "oper": [1, 2, 3, 5], "operationunavailableerror": [2, 3], "opposit": 3, "option": [0, 2, 3], "order": [0, 3], "org": 3, "organ": 4, "orient": 4, "origin": [2, 3], "osi_tp4": 3, "other": [0, 1, 2, 4], "otherwis": [0, 2, 3], "out": [0, 4, 6], "out_of_sequence_detect": 3, "output": [2, 3], "output_s": 3, "output_token": 2, "outsid": 0, "overwrit": [2, 3], "own": [2, 3], "packag": [0, 4], "pad": 3, "page": 4, "paramet": [0, 2, 3], "parameterreaderror": [2, 3], "parameterwriteerror": [2, 3], "part": [0, 3, 4], "parti": 0, "particip": 2, "particular": [0, 3], "particularli": 3, "pass": [0, 2, 3], "path": 1, "per": 2, "perform": [0, 2], "permiss": 3, "pickl": 2, "piec": 3, "place": 3, "point": [2, 3], "pointer": 3, "polici": 2, "possibl": [2, 3], "potenti": 3, "prefer": 3, "present": [1, 2, 3, 4], "preserv": [2, 3], "previous": 3, "primari": 2, "princip": [2, 3], "probabl": 3, "process": [0, 2, 3], "process_context_token": 3, "process_token": 2, "produc": 3, "properti": [2, 3], "protect": 3, "protection_readi": 3, "protocol": 3, "provid": [0, 2, 3, 4], "proxi": 3, "pseudo": 3, "pup": 3, "py": 0, "python": [0, 2, 3, 6], "python3": 0, "qop": [0, 2, 3], "qualiti": 3, "qualnam": 2, "queri": 3, "question": 3, "quirk": 5, "rais": [0, 2, 3], "rare": 2, "raw": [1, 2, 3, 4], "re": 0, "read": [0, 3], "readabl": [2, 3], "readi": 3, "realm": 0, "receiv": 3, "recent": [0, 1], "recv_seq": 3, "refer": [0, 1, 3], "regardless": 2, "regist": 3, "rel": 3, "relat": 3, "releas": [1, 3], "release_cr": 3, "release_nam": 3, "relev": 0, "remain": [2, 3], "remot": 3, "remov": 3, "replai": 1, "replay_detect": 3, "repres": [0, 2, 3], "represent": [2, 3], "request": [0, 2, 3], "requir": [2, 3], "requirementflag": [2, 3], "reset": 3, "resid": 4, "residu": 1, "respect": [0, 2], "restrict": 3, "result": 2, "retriev": [1, 2, 3], "return": [0, 2, 3], "revert": 3, "rfc": [2, 4], "rfc1964": 3, "rfc1964_kd": 3, "rfc1964keydata": 3, "rfc4121": 3, "routine_cod": [2, 3], "run": 0, "runnabl": 0, "s4u": 2, "s4u2self": 3, "safe": 3, "samba": 3, "same": [0, 1, 2, 3], "sasl_mech_nam": 3, "sasl_nam": 3, "satisfi": 3, "save": 0, "seal": 3, "seal_alg": 3, "search": 4, "sec": 3, "sec_context": [0, 3], "second": [0, 2, 3], "section": [3, 5], "securitycontext": [0, 2, 3], "securti": 3, "see": [0, 3], "segfault": 2, "self": 0, "send": [2, 3], "send_and_rec": 2, "send_seq": 3, "sender": 3, "sent": 3, "separ": [0, 2, 3], "sequenc": 3, "server": 0, "server_canon_nam": 0, "server_cr": 0, "server_ctx": 0, "server_hostbased_canon_nam": 0, "server_hostbased_nam": 0, "server_nam": 0, "server_tok": 0, "servic": [0, 1, 2, 3], "service4us": 3, "session": [0, 3], "set": [0, 2, 3], "set_cred_opt": 3, "set_default": [2, 3], "set_encod": 2, "set_name_attribut": 3, "set_neg_mech": 3, "set_sec_context_opt": 3, "setabl": 0, "seton": 0, "sever": [2, 3, 4], "share": 3, "short": [0, 3], "short_desc": 3, "should": [0, 2, 3], "sign": [0, 2, 3], "sign_alg": 3, "sign_onli": 3, "signatur": 2, "signed_messag": 0, "similar": [0, 2, 5], "similarli": [2, 3], "simpli": [0, 2, 3], "sinc": [0, 3], "singl": [2, 3], "singular": 3, "site": 0, "size": [2, 3], "skip": 3, "smb": 3, "so": [0, 3], "socket": 0, "solari": 3, "some": [0, 2, 3, 6], "someth": 1, "sourc": [1, 2, 3], "space": 3, "special": 3, "specif": [1, 2, 5], "specifi": [0, 2, 3], "sspi": [2, 3], "stand": 0, "standard": 0, "start": [0, 2, 4, 6], "state": 3, "statu": [2, 3], "std_layout": 3, "stdin": 0, "step": [0, 2], "storag": 1, "store": [2, 5], "store_cr": 3, "store_cred_into": [1, 3], "storecredresult": [2, 3], "str": [2, 3], "straight": 4, "stream": 3, "string": [0, 1, 2, 3], "string_uid": [2, 3], "struct": 3, "structur": 3, "sub": 3, "succesfulli": 2, "success": 2, "suffici": 0, "suggest": 0, "suitabl": 3, "supplementary_cod": [2, 3], "supplementaryerror": [2, 3], "support": [0, 1, 2, 3], "suppos": 0, "sure": 2, "syntax": [0, 2, 3], "system": 0, "t": 3, "take": 3, "taken": 2, "target": [0, 2, 3], "target_nam": [2, 3], "tediou": 0, "term": 3, "text": [2, 3], "textual": 3, "tgt": 0, "than": 3, "thei": [0, 2, 3], "them": [0, 2, 3], "thi": [0, 2, 3, 5], "thin": 4, "those": [0, 3], "thread": 3, "three": 2, "through": [0, 3], "throw": [2, 3], "thrown": 2, "thu": [2, 3], "ticket": 3, "time": [2, 3], "tip": 5, "tkt": 3, "togeth": 3, "token": [2, 3], "tokenoutofsequenceerror": [2, 3], "tokenreaderror": [2, 3], "tokentooearlyerror": [2, 3], "tokentoolateerror": [2, 3], "tool": 3, "total": 3, "traceback": 0, "tradit": 3, "trailer": 3, "transfer": [2, 3], "transmit": [2, 3], "trasmit": 3, "true": [0, 2, 3], "trust": 2, "try": [0, 2], "ttl": 3, "tupl": 3, "turn": 3, "tutori": [0, 4], "two": [0, 3, 4], "type": [0, 1, 2, 3], "typic": 2, "unabl": [2, 3], "unauthorizederror": [2, 3], "unconstrain": 2, "underli": [3, 4], "understand": 3, "understood": 1, "unencrypt": [2, 3], "unicod": 2, "unknown": [2, 3], "unknownusageerror": 2, "unless": [0, 2], "unlik": [2, 3], "unpickl": 2, "unset": 3, "unus": 3, "unwrap": [0, 2, 3], "unwrap_aead": 3, "unwrap_iov": 3, "unwrapped_messag": [0, 2], "unwrapresult": [0, 2, 3], "up": 0, "updat": [2, 3], "us": [0, 1, 2, 3, 4, 6], "usabl": 0, "usag": [0, 2, 3], "user": [0, 2, 3], "usr": 0, "usual": 1, "utf": 2, "uwrap": 3, "v": 3, "valid": [2, 3], "valu": [2, 3, 5], "valueerror": 3, "variabl": 3, "varieti": 3, "variou": [1, 3], "verifi": [0, 2, 3], "verify_m": 3, "verify_mic_iov": 3, "verify_signatur": 2, "version": [1, 2, 3], "via": 2, "wa": [0, 2, 3], "wai": [0, 2, 3], "want": 0, "warn": [2, 3], "we": [0, 3], "well": [0, 1, 2, 3, 4], "were": 3, "what": 2, "when": [0, 1, 2, 3], "where": [1, 3], "wheter": 2, "whether": [0, 2, 3], "which": [0, 2, 3, 4], "while": [0, 2, 3], "william": 3, "window": 2, "wish": [0, 2, 3], "within": [1, 3], "without": 0, "won": 3, "work": [2, 3], "would": [0, 2, 3], "wrap": [0, 2, 3], "wrap_aead": 3, "wrap_iov": 3, "wrap_iov_length": 3, "wrap_size_limit": 3, "wrapped_messag": 0, "wrapper": [0, 3, 4], "wrapresult": [2, 3], "write": 0, "x25": 3, "xerox_n": 3, "xor": 3, "yalpt": 0, "yet": 1, "you": [0, 2, 3], "your": [2, 3], "zero": 3}, "titles": ["A Basic Introduction to GSSAPI", "Common Values for Credentials Store Extensions", "High-Level API", "Low-Level API", "Python-GSSAPI: Python bindings for GSSAPI", "Other Documentation", "Tutorials"], "titleterms": {"2744": 3, "4178": 3, "5587": 3, "5588": 3, "5801": 3, "6680": 3, "A": 0, "The": 1, "With": 3, "acquir": 3, "addit": 3, "aead": 3, "api": [2, 3], "attribut": 3, "basic": 0, "bind": 4, "ccach": 1, "class": 2, "client_keytab": 1, "common": 1, "context": [0, 2, 3], "core": 3, "credenti": [0, 1, 2, 3], "dce": 3, "deleg": 3, "document": 5, "enum": 2, "except": [2, 3], "export": 3, "extens": [1, 3], "forum": 3, "ggf": 3, "global": 3, "grid": 3, "gss": 3, "gssapi": [0, 4], "heimdal": 1, "helper": 2, "high": 2, "import": 3, "indic": 4, "introduct": 0, "iov": 3, "kerbero": 3, "keytab": 1, "krb5": 1, "level": [2, 3], "librari": 1, "low": 3, "main": 2, "mech": 3, "mechan": [1, 3], "mic": 3, "misc": 3, "mit": 1, "name": [0, 2, 3], "negoti": 3, "other": [3, 5], "password": 3, "python": 4, "rcach": 1, "result": 3, "rfc": 3, "sasl": 3, "secur": [0, 2, 3], "services4us": 3, "specif": 3, "store": [1, 3], "tabl": 4, "tutori": 6, "util": 2, "valu": 1}}) \ No newline at end of file diff --git a/stable/tutorials.html b/stable/tutorials.html index 811648ad..4553e9b2 100644 --- a/stable/tutorials.html +++ b/stable/tutorials.html @@ -1,22 +1,22 @@ + + - + - + - Tutorials — Python-GSSAPI 1.8.3 documentation - - - - + Tutorials — Python-GSSAPI 1.9.0 documentation + + + + - - - - - + + + + + @@ -35,9 +35,6 @@ Python-GSSAPI -
    - 1.8.3 -