diff --git a/doc/LectureNotes/_build/.doctrees/chapter1.doctree b/doc/LectureNotes/_build/.doctrees/chapter1.doctree index 1086a5888..af14f2942 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter1.doctree and b/doc/LectureNotes/_build/.doctrees/chapter1.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter10.doctree b/doc/LectureNotes/_build/.doctrees/chapter10.doctree index 89cd2d5cd..4d0b21b72 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter10.doctree and b/doc/LectureNotes/_build/.doctrees/chapter10.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter11.doctree b/doc/LectureNotes/_build/.doctrees/chapter11.doctree index 1c46f6197..2888f1c03 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter11.doctree and b/doc/LectureNotes/_build/.doctrees/chapter11.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter12.doctree b/doc/LectureNotes/_build/.doctrees/chapter12.doctree index 4aa518075..1878ff217 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter12.doctree and b/doc/LectureNotes/_build/.doctrees/chapter12.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter13.doctree b/doc/LectureNotes/_build/.doctrees/chapter13.doctree index 1f4cd3c3e..827563280 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter13.doctree and b/doc/LectureNotes/_build/.doctrees/chapter13.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter2.doctree b/doc/LectureNotes/_build/.doctrees/chapter2.doctree index 9b17d0f41..049f4b713 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter2.doctree and b/doc/LectureNotes/_build/.doctrees/chapter2.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter3.doctree b/doc/LectureNotes/_build/.doctrees/chapter3.doctree index 879d5ebde..97e466d69 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter3.doctree and b/doc/LectureNotes/_build/.doctrees/chapter3.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter4.doctree b/doc/LectureNotes/_build/.doctrees/chapter4.doctree index 15e57c49b..a90937409 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter4.doctree and b/doc/LectureNotes/_build/.doctrees/chapter4.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter5.doctree b/doc/LectureNotes/_build/.doctrees/chapter5.doctree index bd7aca63f..63abe7851 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter5.doctree and b/doc/LectureNotes/_build/.doctrees/chapter5.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter6.doctree b/doc/LectureNotes/_build/.doctrees/chapter6.doctree index a717ea346..409c7fd94 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter6.doctree and b/doc/LectureNotes/_build/.doctrees/chapter6.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter7.doctree b/doc/LectureNotes/_build/.doctrees/chapter7.doctree index f3ddcceb2..067ad271d 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter7.doctree and b/doc/LectureNotes/_build/.doctrees/chapter7.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter8.doctree b/doc/LectureNotes/_build/.doctrees/chapter8.doctree index 0edc2d7fa..b64b2890a 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter8.doctree and b/doc/LectureNotes/_build/.doctrees/chapter8.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapter9.doctree b/doc/LectureNotes/_build/.doctrees/chapter9.doctree index 6cf15da94..15956465a 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapter9.doctree and b/doc/LectureNotes/_build/.doctrees/chapter9.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/chapteroptimization.doctree b/doc/LectureNotes/_build/.doctrees/chapteroptimization.doctree index 2c60b3f7d..601d894db 100644 Binary files a/doc/LectureNotes/_build/.doctrees/chapteroptimization.doctree and b/doc/LectureNotes/_build/.doctrees/chapteroptimization.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/clustering.doctree b/doc/LectureNotes/_build/.doctrees/clustering.doctree index 9583ba6d8..449148e45 100644 Binary files a/doc/LectureNotes/_build/.doctrees/clustering.doctree and b/doc/LectureNotes/_build/.doctrees/clustering.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/environment.pickle b/doc/LectureNotes/_build/.doctrees/environment.pickle index aae7ab6a3..c244c9060 100644 Binary files a/doc/LectureNotes/_build/.doctrees/environment.pickle and b/doc/LectureNotes/_build/.doctrees/environment.pickle differ diff --git a/doc/LectureNotes/_build/.doctrees/intro.doctree b/doc/LectureNotes/_build/.doctrees/intro.doctree index 9ae18accd..d8772433c 100644 Binary files a/doc/LectureNotes/_build/.doctrees/intro.doctree and b/doc/LectureNotes/_build/.doctrees/intro.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/linalg.doctree b/doc/LectureNotes/_build/.doctrees/linalg.doctree index 3cb2eae6f..78bf0a416 100644 Binary files a/doc/LectureNotes/_build/.doctrees/linalg.doctree and b/doc/LectureNotes/_build/.doctrees/linalg.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/schedule.doctree b/doc/LectureNotes/_build/.doctrees/schedule.doctree index 0af12a784..996b038fd 100644 Binary files a/doc/LectureNotes/_build/.doctrees/schedule.doctree and b/doc/LectureNotes/_build/.doctrees/schedule.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/statistics.doctree b/doc/LectureNotes/_build/.doctrees/statistics.doctree index 1a0ee4126..6b79faa32 100644 Binary files a/doc/LectureNotes/_build/.doctrees/statistics.doctree and b/doc/LectureNotes/_build/.doctrees/statistics.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/teachers.doctree b/doc/LectureNotes/_build/.doctrees/teachers.doctree index 196bad482..babe713e0 100644 Binary files a/doc/LectureNotes/_build/.doctrees/teachers.doctree and b/doc/LectureNotes/_build/.doctrees/teachers.doctree differ diff --git a/doc/LectureNotes/_build/.doctrees/textbooks.doctree b/doc/LectureNotes/_build/.doctrees/textbooks.doctree index ec35fda87..cb9cbed7c 100644 Binary files a/doc/LectureNotes/_build/.doctrees/textbooks.doctree and b/doc/LectureNotes/_build/.doctrees/textbooks.doctree differ diff --git a/doc/LectureNotes/_build/html/.buildinfo b/doc/LectureNotes/_build/html/.buildinfo index 3f46e6780..06fb2ea71 100644 --- a/doc/LectureNotes/_build/html/.buildinfo +++ b/doc/LectureNotes/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 2fd3d019b83b9c58018e90b52a9aa1b0 +config: f308db7c477ecb0b30693adc2f4b68f7 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/LectureNotes/_build/html/_images/chapter10_39_1.png b/doc/LectureNotes/_build/html/_images/chapter10_39_1.png index 91a4496c5..379a0198a 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter10_39_1.png and b/doc/LectureNotes/_build/html/_images/chapter10_39_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter10_59_1.png b/doc/LectureNotes/_build/html/_images/chapter10_59_1.png index 6d1467029..44c9e3643 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter10_59_1.png and b/doc/LectureNotes/_build/html/_images/chapter10_59_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter10_59_2.png b/doc/LectureNotes/_build/html/_images/chapter10_59_2.png index b7c47b451..8bd0f3142 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter10_59_2.png and b/doc/LectureNotes/_build/html/_images/chapter10_59_2.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter10_63_0.png b/doc/LectureNotes/_build/html/_images/chapter10_63_0.png index 59f332230..245832279 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter10_63_0.png and b/doc/LectureNotes/_build/html/_images/chapter10_63_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter10_63_1.png b/doc/LectureNotes/_build/html/_images/chapter10_63_1.png index 10b90707a..74f9c1c5c 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter10_63_1.png and b/doc/LectureNotes/_build/html/_images/chapter10_63_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_50_2.png b/doc/LectureNotes/_build/html/_images/chapter11_50_2.png index 5742598bc..b28d86a02 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_50_2.png and b/doc/LectureNotes/_build/html/_images/chapter11_50_2.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_52_3.png b/doc/LectureNotes/_build/html/_images/chapter11_52_3.png index 99f92bd8b..2b899f6a1 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_52_3.png and b/doc/LectureNotes/_build/html/_images/chapter11_52_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_58_3.png b/doc/LectureNotes/_build/html/_images/chapter11_58_3.png index 6d89cdf1e..927a7199c 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_58_3.png and b/doc/LectureNotes/_build/html/_images/chapter11_58_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_66_3.png b/doc/LectureNotes/_build/html/_images/chapter11_66_3.png index 6d89cdf1e..927a7199c 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_66_3.png and b/doc/LectureNotes/_build/html/_images/chapter11_66_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_66_4.png b/doc/LectureNotes/_build/html/_images/chapter11_66_4.png index 4fdb738d2..27c5bfb18 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_66_4.png and b/doc/LectureNotes/_build/html/_images/chapter11_66_4.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_79_3.png b/doc/LectureNotes/_build/html/_images/chapter11_79_3.png index 4f89c99e9..00efa2389 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_79_3.png and b/doc/LectureNotes/_build/html/_images/chapter11_79_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_91_3.png b/doc/LectureNotes/_build/html/_images/chapter11_91_3.png index 4f89c99e9..00efa2389 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_91_3.png and b/doc/LectureNotes/_build/html/_images/chapter11_91_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter11_91_4.png b/doc/LectureNotes/_build/html/_images/chapter11_91_4.png index 5d106940e..877808418 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter11_91_4.png and b/doc/LectureNotes/_build/html/_images/chapter11_91_4.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter12_35_0.png b/doc/LectureNotes/_build/html/_images/chapter12_35_0.png index 282fbd25e..1d404b058 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter12_35_0.png and b/doc/LectureNotes/_build/html/_images/chapter12_35_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter12_51_0.png b/doc/LectureNotes/_build/html/_images/chapter12_51_0.png index cd49564e7..dd32534b6 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter12_51_0.png and b/doc/LectureNotes/_build/html/_images/chapter12_51_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter12_67_1.png b/doc/LectureNotes/_build/html/_images/chapter12_67_1.png index 91a4496c5..379a0198a 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter12_67_1.png and b/doc/LectureNotes/_build/html/_images/chapter12_67_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter13_3_1.png b/doc/LectureNotes/_build/html/_images/chapter13_3_1.png new file mode 100644 index 000000000..5395f53a0 Binary files /dev/null and b/doc/LectureNotes/_build/html/_images/chapter13_3_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter1_11_0.png b/doc/LectureNotes/_build/html/_images/chapter1_11_0.png index 6ec4891e5..42a65eb71 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter1_11_0.png and b/doc/LectureNotes/_build/html/_images/chapter1_11_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter1_13_1.png b/doc/LectureNotes/_build/html/_images/chapter1_13_1.png index 9c18773c1..d4bff6811 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter1_13_1.png and b/doc/LectureNotes/_build/html/_images/chapter1_13_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter1_27_0.png b/doc/LectureNotes/_build/html/_images/chapter1_27_0.png index a30513b46..3089d9f46 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter1_27_0.png and b/doc/LectureNotes/_build/html/_images/chapter1_27_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter1_3_0.png b/doc/LectureNotes/_build/html/_images/chapter1_3_0.png index 7ee1932ad..793a4fd9d 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter1_3_0.png and b/doc/LectureNotes/_build/html/_images/chapter1_3_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter2_245_1.png b/doc/LectureNotes/_build/html/_images/chapter2_245_1.png index d53053632..d8ec67fae 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter2_245_1.png and b/doc/LectureNotes/_build/html/_images/chapter2_245_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter2_247_1.png b/doc/LectureNotes/_build/html/_images/chapter2_247_1.png index 78db82472..866b6addf 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter2_247_1.png and b/doc/LectureNotes/_build/html/_images/chapter2_247_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter2_249_1.png b/doc/LectureNotes/_build/html/_images/chapter2_249_1.png index cc281a58f..cf8636c6a 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter2_249_1.png and b/doc/LectureNotes/_build/html/_images/chapter2_249_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_107_1.png b/doc/LectureNotes/_build/html/_images/chapter3_107_1.png index 5de46e7ee..b19ce68ff 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_107_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_107_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_115_1.png b/doc/LectureNotes/_build/html/_images/chapter3_115_1.png index 57716b7b0..f0739f90b 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_115_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_115_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_117_1.png b/doc/LectureNotes/_build/html/_images/chapter3_117_1.png index 92506af14..777ddf65d 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_117_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_117_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_148_1.png b/doc/LectureNotes/_build/html/_images/chapter3_148_1.png index 0da8fb2fb..725c516ea 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_148_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_148_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_166_1.png b/doc/LectureNotes/_build/html/_images/chapter3_166_1.png index f4d12d97a..65fecb046 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_166_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_166_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_169_1.png b/doc/LectureNotes/_build/html/_images/chapter3_169_1.png index cdf0ad5dc..4734554a7 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_169_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_169_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_173_1.png b/doc/LectureNotes/_build/html/_images/chapter3_173_1.png index 54c39fda5..2bbd1309d 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_173_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_173_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_175_13.png b/doc/LectureNotes/_build/html/_images/chapter3_175_13.png index f4d2dc749..12c31bd32 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_175_13.png and b/doc/LectureNotes/_build/html/_images/chapter3_175_13.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_177_0.png b/doc/LectureNotes/_build/html/_images/chapter3_177_0.png index 0a2220357..cb743e5e0 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_177_0.png and b/doc/LectureNotes/_build/html/_images/chapter3_177_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_181_1.png b/doc/LectureNotes/_build/html/_images/chapter3_181_1.png index b83e84982..e8ce7f873 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_181_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_181_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_47_0.png b/doc/LectureNotes/_build/html/_images/chapter3_47_0.png index c2b3c6927..7c3e58057 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_47_0.png and b/doc/LectureNotes/_build/html/_images/chapter3_47_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_61_1.png b/doc/LectureNotes/_build/html/_images/chapter3_61_1.png index f9d994e4b..c514bcc01 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_61_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_61_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_62_3.png b/doc/LectureNotes/_build/html/_images/chapter3_62_3.png new file mode 100644 index 000000000..b76706909 Binary files /dev/null and b/doc/LectureNotes/_build/html/_images/chapter3_62_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_64_1.png b/doc/LectureNotes/_build/html/_images/chapter3_64_1.png index 51bed3706..3d8acee6a 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_64_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_64_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_65_6.png b/doc/LectureNotes/_build/html/_images/chapter3_65_6.png new file mode 100644 index 000000000..09f00ebf8 Binary files /dev/null and b/doc/LectureNotes/_build/html/_images/chapter3_65_6.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_71_0.png b/doc/LectureNotes/_build/html/_images/chapter3_71_0.png index 505b245ce..29304c20b 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_71_0.png and b/doc/LectureNotes/_build/html/_images/chapter3_71_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter3_73_1.png b/doc/LectureNotes/_build/html/_images/chapter3_73_1.png index dec62c9f9..a7d3b8edd 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter3_73_1.png and b/doc/LectureNotes/_build/html/_images/chapter3_73_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter4_13_0.png b/doc/LectureNotes/_build/html/_images/chapter4_13_0.png index 44b37ff30..f3903fe23 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter4_13_0.png and b/doc/LectureNotes/_build/html/_images/chapter4_13_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter4_13_1.png b/doc/LectureNotes/_build/html/_images/chapter4_13_1.png index 4176f89db..20fa7e789 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter4_13_1.png and b/doc/LectureNotes/_build/html/_images/chapter4_13_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter4_13_2.png b/doc/LectureNotes/_build/html/_images/chapter4_13_2.png index 198de6994..6e50bbc94 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter4_13_2.png and b/doc/LectureNotes/_build/html/_images/chapter4_13_2.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter4_51_0.png b/doc/LectureNotes/_build/html/_images/chapter4_51_0.png index c3b6498c5..6d4c264e5 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter4_51_0.png and b/doc/LectureNotes/_build/html/_images/chapter4_51_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter4_51_1.png b/doc/LectureNotes/_build/html/_images/chapter4_51_1.png index a724a04f1..ef508fd2d 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter4_51_1.png and b/doc/LectureNotes/_build/html/_images/chapter4_51_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter4_5_1.png b/doc/LectureNotes/_build/html/_images/chapter4_5_1.png index cee65bae9..e58ecca7e 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter4_5_1.png and b/doc/LectureNotes/_build/html/_images/chapter4_5_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter4_7_0.png b/doc/LectureNotes/_build/html/_images/chapter4_7_0.png index c4668ff09..d0c25887d 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter4_7_0.png and b/doc/LectureNotes/_build/html/_images/chapter4_7_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter5_109_0.png b/doc/LectureNotes/_build/html/_images/chapter5_109_0.png index b1023365e..569dd00ae 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter5_109_0.png and b/doc/LectureNotes/_build/html/_images/chapter5_109_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter5_129_0.png b/doc/LectureNotes/_build/html/_images/chapter5_129_0.png index 3348a8227..e9ebfd7a9 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter5_129_0.png and b/doc/LectureNotes/_build/html/_images/chapter5_129_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter5_129_2.png b/doc/LectureNotes/_build/html/_images/chapter5_129_2.png index aeb533770..a8256c580 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter5_129_2.png and b/doc/LectureNotes/_build/html/_images/chapter5_129_2.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter5_129_3.png b/doc/LectureNotes/_build/html/_images/chapter5_129_3.png index 85dec16bb..96cd47c3e 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter5_129_3.png and b/doc/LectureNotes/_build/html/_images/chapter5_129_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter5_129_4.png b/doc/LectureNotes/_build/html/_images/chapter5_129_4.png index 25457b8da..6055574a4 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter5_129_4.png and b/doc/LectureNotes/_build/html/_images/chapter5_129_4.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter5_129_6.png b/doc/LectureNotes/_build/html/_images/chapter5_129_6.png index 63cefda04..af6b6fb2b 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter5_129_6.png and b/doc/LectureNotes/_build/html/_images/chapter5_129_6.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter5_1_1.png b/doc/LectureNotes/_build/html/_images/chapter5_1_1.png index a323677c8..bcdce0fad 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter5_1_1.png and b/doc/LectureNotes/_build/html/_images/chapter5_1_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter6_1_1.png b/doc/LectureNotes/_build/html/_images/chapter6_1_1.png index bc1b5ac0a..a0ff0d08b 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter6_1_1.png and b/doc/LectureNotes/_build/html/_images/chapter6_1_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter6_1_2.png b/doc/LectureNotes/_build/html/_images/chapter6_1_2.png index 70faa0954..dae722ea5 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter6_1_2.png and b/doc/LectureNotes/_build/html/_images/chapter6_1_2.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter8_65_1.png b/doc/LectureNotes/_build/html/_images/chapter8_65_1.png index ff5acf7c3..ca1e82024 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter8_65_1.png and b/doc/LectureNotes/_build/html/_images/chapter8_65_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter9_29_0.png b/doc/LectureNotes/_build/html/_images/chapter9_29_0.png index 365106fcf..85d5833f1 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter9_29_0.png and b/doc/LectureNotes/_build/html/_images/chapter9_29_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter9_29_1.png b/doc/LectureNotes/_build/html/_images/chapter9_29_1.png index 4e4f7be0e..1ff7a7cdf 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter9_29_1.png and b/doc/LectureNotes/_build/html/_images/chapter9_29_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter9_29_2.png b/doc/LectureNotes/_build/html/_images/chapter9_29_2.png index eb25b37cc..2c15fba38 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter9_29_2.png and b/doc/LectureNotes/_build/html/_images/chapter9_29_2.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapter9_29_3.png b/doc/LectureNotes/_build/html/_images/chapter9_29_3.png index 5596de430..9cba34795 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapter9_29_3.png and b/doc/LectureNotes/_build/html/_images/chapter9_29_3.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapteroptimization_123_1.png b/doc/LectureNotes/_build/html/_images/chapteroptimization_123_1.png index fcf4c6806..e251f6bf2 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapteroptimization_123_1.png and b/doc/LectureNotes/_build/html/_images/chapteroptimization_123_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapteroptimization_132_1.png b/doc/LectureNotes/_build/html/_images/chapteroptimization_132_1.png index bca109752..d17d05102 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapteroptimization_132_1.png and b/doc/LectureNotes/_build/html/_images/chapteroptimization_132_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapteroptimization_148_1.png b/doc/LectureNotes/_build/html/_images/chapteroptimization_148_1.png index ac481f86e..080f91cdf 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapteroptimization_148_1.png and b/doc/LectureNotes/_build/html/_images/chapteroptimization_148_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapteroptimization_188_0.png b/doc/LectureNotes/_build/html/_images/chapteroptimization_188_0.png index 1e983bdb8..8f75d66ca 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapteroptimization_188_0.png and b/doc/LectureNotes/_build/html/_images/chapteroptimization_188_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapteroptimization_61_2.png b/doc/LectureNotes/_build/html/_images/chapteroptimization_61_2.png index 7d78856da..e41281b5a 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapteroptimization_61_2.png and b/doc/LectureNotes/_build/html/_images/chapteroptimization_61_2.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapteroptimization_63_0.png b/doc/LectureNotes/_build/html/_images/chapteroptimization_63_0.png index b1441ecf4..9a11d2377 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapteroptimization_63_0.png and b/doc/LectureNotes/_build/html/_images/chapteroptimization_63_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/chapteroptimization_69_1.png b/doc/LectureNotes/_build/html/_images/chapteroptimization_69_1.png index eeca55933..73667a769 100644 Binary files a/doc/LectureNotes/_build/html/_images/chapteroptimization_69_1.png and b/doc/LectureNotes/_build/html/_images/chapteroptimization_69_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/clustering_17_0.png b/doc/LectureNotes/_build/html/_images/clustering_17_0.png index 1e6a8c796..ba746ef23 100644 Binary files a/doc/LectureNotes/_build/html/_images/clustering_17_0.png and b/doc/LectureNotes/_build/html/_images/clustering_17_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/clustering_20_0.png b/doc/LectureNotes/_build/html/_images/clustering_20_0.png index be592e440..cd41a8c93 100644 Binary files a/doc/LectureNotes/_build/html/_images/clustering_20_0.png and b/doc/LectureNotes/_build/html/_images/clustering_20_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/clustering_24_0.png b/doc/LectureNotes/_build/html/_images/clustering_24_0.png index e2dbae3dc..ca76b13fe 100644 Binary files a/doc/LectureNotes/_build/html/_images/clustering_24_0.png and b/doc/LectureNotes/_build/html/_images/clustering_24_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/statistics_178_0.png b/doc/LectureNotes/_build/html/_images/statistics_178_0.png index c2be98233..a3f3840eb 100644 Binary files a/doc/LectureNotes/_build/html/_images/statistics_178_0.png and b/doc/LectureNotes/_build/html/_images/statistics_178_0.png differ diff --git a/doc/LectureNotes/_build/html/_images/statistics_184_1.png b/doc/LectureNotes/_build/html/_images/statistics_184_1.png index 9eb562e57..d57f773d6 100644 Binary files a/doc/LectureNotes/_build/html/_images/statistics_184_1.png and b/doc/LectureNotes/_build/html/_images/statistics_184_1.png differ diff --git a/doc/LectureNotes/_build/html/_images/statistics_29_0.png b/doc/LectureNotes/_build/html/_images/statistics_29_0.png index 2a75a0751..5adbf9cac 100644 Binary files a/doc/LectureNotes/_build/html/_images/statistics_29_0.png and b/doc/LectureNotes/_build/html/_images/statistics_29_0.png differ diff --git a/doc/LectureNotes/_build/html/_sources/schedule.md b/doc/LectureNotes/_build/html/_sources/schedule.md index 5bc748484..905af3cef 100644 --- a/doc/LectureNotes/_build/html/_sources/schedule.md +++ b/doc/LectureNotes/_build/html/_sources/schedule.md @@ -5,10 +5,10 @@ This course will be delivered in a hybrid mode, with online lectures and on site 1. Four lectures per week, Fall semester, 10 ECTS. The lectures are in person but will be recorded and linked to this site and the official University of Oslo website for the course; 2. Two hours of laboratory sessions for work on computational projects and exercises for each group. There will also be fully digital laboratory sessions for those who cannot attend; -3. Three projects which are graded and count 1/3 each of the final grade. The deadlines for the projects are October 11 for project 1, November 15 for project 2 and December 13 for project 3. +3. Three projects which are graded and count 1/3 each of the final grade. The deadlines for the projects are October 7 for project 1, November 11 for project 2 and December 9 for project 3. 4. A selected number of weekly assignments; 5. The course is part of the CS Master of Science program, but is open to other bachelor and Master of Science students at the University of Oslo; -6. The course is offered as a FYS-MAT4155 (Master of Science level) and a FYS-MAT3155 (senior undergraduate) course; +6. The course is offered as a FYS-STK4155 (Master of Science level) and a FYS-STK3155 (senior undergraduate) course; 7. Videos of teaching material are available via the links at https://compphysics.github.io/MachineLearning/doc/web/course.html; 8. Weekly emails with summary of activities will be mailed to all participants; @@ -22,12 +22,12 @@ For the reading assignments we use the following abbreviations: - HTF: Hastie, Tibshirani, and Friedman, The Elements of Statistical Learning - AG: Aurelien Geron, Hands‑On Machine Learning with Scikit‑Learn and TensorFlow -### Week 34 August 23-27 +### Week 34 August 22-26 - Lab Wednesday: Introduction to software and repetition of Python Programming - Lecture Thursday: Introduction to the course, what is Machine Learning and introduction to Linear Regression. -- Video of Lecture August 26, 2021 at https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h21/forelesningsvideoer/LectureThursdayAugust26.mp4?vrtx=view-as-webpage +- Video of Lecture August 25, 2022 at - Lecture Friday: Basics of Linear Regression -- Video of Lecture August 27, 2021 at https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h21/forelesningsvideoer/LectureThursdayAugust27.mp4?vrtx=view-as-webpage +- Video of Lecture August 26, 2022 at - Reading recommendations: - Refresh linear algebra, GBC chapters 1 and 2. @@ -35,12 +35,12 @@ For the reading assignments we use the following abbreviations: - HTF chapters 2 and 3. - See lecture notes for week 34 at https://compphysics.github.io/MachineLearning/doc/web/course.html -### Week 35 August 30-September 3 +### Week 35 August 29-September 2 - Lab Wednesday: Work on exercises 1-3 for week 35 - Thursday: Review of ordinary Least Squares with applications and discussion of Ridge Regression and Singular Value Decomposition -- Video of lecture Thursday at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember2.mp4?vrtx=view-as-webpage. +- Video of lecture Thursday at - Friday: Analysis of Ridge and Lasso Regression and links with Singular Value Decomposition -- Video of lecture Friday at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember3.mp4?vrtx=view-as-webpage +- Video of lecture Friday at - Reading recommendations: - See lecture notes for week 35 at https://compphysics.github.io/MachineLearning/doc/web/course.html. @@ -48,26 +48,25 @@ For the reading assignments we use the following abbreviations: - CMB sections 1.1 and 3.1 -### Week 36 September 6-10 +### Week 36 September 5-9 - Lab Wednesday: Exercises 1 and 2 from week 36 - Lecture Thursday: Summary from last week on SVD, Statistics, probability theory and linear regression -- Video of Lecture https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember9.mp4?vrtx=view-as-webpage +- Video of Lecture - Friday: Linear Regression and links with Statistics, Resampling methods and presentation of first project. -- Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h21/forelesningsvideoer/LectureSeptember10.mp4?vrtx=view-as-webpage +- Video of Lecture - Reading recommendations: - Lectures on Regression for week 36 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - Bishop 1.1, 1.2, 2.1, 2.2, 2.3 and 3.1 - Hastie et al chapter 3 -### Week 37 September 13-17 +### Week 37 September 12-16 - Lab Wednesday: Work on Project 1 - Lecture Thursday: Resampling methods, cross-validation and Bootstrap - - Thursday September 16: Summary of Ridge and Lasso with examples and start resampling techniques - - Video of Lecture, first part at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember16Firstpart.mp4?vrtx=view-as-webpage" - - Video of Lecture, second part at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember16SecondPart.mp4?vrtx=view-as-webpage + - Thursday September: Summary of Ridge and Lasso with examples and start resampling techniques + - Video of Lecture - Lecture Friday: More on Resampling methods and summary of linear regression - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember17.mp4?vrtx=view-as-webpage + - Video of Lecture - Reading recommendations: - Lectures on Resampling methods for week 37 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - Bishop 1.3 (cross-validation) and 3.2 (bias-variance tradeoff) @@ -75,42 +74,42 @@ For the reading assignments we use the following abbreviations: - Goodfellow et al discuss some of these topics in sections 5.2-5.5. -### Week 38 September 20-24 +### Week 38 September 19-23 - Lab Wednesday: Work on Project 1 - Lecture Thursday: Classification problems and Logistic Regression, from binary cases to several categories - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h21/forelesningsvideoer/LectureSeptember23.mp4?vrtx=view-as-webpage + - Video of Lecture at - Lecture Friday: Logistic Regression and gradient optimization - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember24.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 38 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - Bishop 4.1, 4.2 and 4.3. Not all the material is relevant or will be covered. Section 4.3 is the most relevant, but 4.1 and 4.2 give interesting background readings for logistic regression - Hastie et al 4.1, 4.2 and 4.3 on logistic regression - For a good discussion on gradient methods, see Goodfellow et al section 4.3-4.5 and chapter 8. We will come back to the latter chapter in our discussion of Neural networks as well. -### Week 39 September 27- October 1 +### Week 39 September 26-30 - Lab Wednesday: Work on Project 1 - Lecture Thursday: Gradient Optimization methods - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember30.mp4?vrtx=view-as-webpage + - Video of Lecture at - Lecture Friday: Gradient methods - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureOctober1.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 39 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - For a good discussion on gradient methods, see Goodfellow et al section 4.3-4.5 and chapter 8. We will come back to the latter chapter in our discussion of Neural networks as well. -### Week 40 October 4-8 +### Week 40 October 3-7 - Lab Wednesday: Wrap up project 1 - Lecture Thursday: Stochastic gradient descent, automatic differentiation and start discussion of feed-forward Neural Network code for regression and classification - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureOctober7.mp4?vrtx=view-as-webpage + - Video of Lecture at - Lecture Friday: Deep Learning and Neural Networks: the back propagation algorithm - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureOctober8.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 40 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - For neural networks we recommend Goodfellow et al chapters 6 and 7 and Bishop 5.1-5.4 - For stochastic gradient descent we recommend Goodfellow et al chapter 8 -### Week 41 October 11-15 +### Week 41 October 10-14 - Lab Wednesday: Work on project 2 - Lecture Thursday: Deep learning and Neural Networks, developing a code for Neural Networks - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureOctober14.mp4?vrtx=view-as-webpage @@ -121,61 +120,61 @@ For the reading assignments we use the following abbreviations: - For neural networks we recommend Goodfellow et al chapters 6 and 7. For CNNs, see Goodfellow et al chapter 9. chapter 11 and 12 on practicalities and applications -### Week 42 October 18-22 +### Week 42 October 17-21 - Lab Wednesday: Work on project 2 - Lecture Thursday: Solving differential equations with neural networks and start Convolutional Neural Networks and classification problems - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureOctober21.mp4?vrtx=view-as-webpage + - Video of Lecture at - Lecture Friday: Convolutional Neural Networks and classification problems - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h21/forelesningsvideoer/LectureOctober22.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 42 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - For neural networks we recommend Goodfellow et al chapters 6 and 7. For CNNs, see Goodfellow et al chapter 9. See also chapter 11 and 12 on practicalities and applications -### Week 43 October 25-29 +### Week 43 October 24-28 - Lab Wednesday: Work on project 2 - Lecture Thursday: Recurrent Neural Networks - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureOctober28.mp4?vrtx=view-as-webpage + - Video of Lecture at - Lecture Friday: Recurrent Neural Networks and time series and principal component analysis (PCA) - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureOctober29.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 43 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - For RNNs, see Goodfellow et al chapter 10 and discussions in chapter 11 and 12 on practicalities and applications - For PCA, see lecture notes chapter 11 and Geron's text chapter 8 -### Week 44 November 1-5 +### Week 44 October 31-November 4 - Lab Wednesday: Work on project 2 - Lecture Thursday: Summary on PCA and discussion of Clustering for unsupervised learning. Decision trees, classification and regression - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureNovember4.mp4?vrtx=view-as-webpage + - Video of Lecture at - Lecture Friday: Decision trees, basic algorithms - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureNovember5.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 44 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - Hastie et al sections 9.1 and 9.2. Geron's text chapter 6 (Decision trees) and chapter 8 on PCA and Clustering -### Week 45 November 8-12 -- Lab Wednesday: Work on project 2, project 3 available. Deadline project 2 is November 15. +### Week 45 November 7-11 +- Lab Wednesday: Work on project 2, project 3 available. - Lecture Thursday: Ensemble methods, bagging and random forests - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureNovember11.mp4?vrtx=view-as-webpage + - Video of Lecture at - Lecture Friday: Boosting and gradient boosting - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureNovember12.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 45 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - Hastie et al chapter 10 -### Week 46 November 15-19 +### Week 46 November 14-18 - Lab Wednesday: Work on project 3 - Lecture Thursday: Support Vector machines - Lecture Friday: Workshop on project 3 - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h21/forelesningsvideoer/LectureNovember19.mp4?vrtx=view-as-webpage + - Video of Lecture at - Reading recommendations: - See lecture notes for week 46 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - Hastie et al chapter 12 -### Week 47 November 22-26 +### Week 47 November 21-25 - Lab Wednesday: Work on project 3 - Lecture Thursday: Support Vector Machines - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h21/forelesningsvideoer/LectureNovember25.mp4?vrtx=view-as-webpage + - Video of Lecture - Lecture Friday: Support Vector Machines and Summary of course - - Video of Lecture at https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureNovember26.mp4?vrtx=view-as-webpage + - Video of Lecture - Reading recommendations: - See lecture notes for week 47 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - Geron's chapter 5. diff --git a/doc/LectureNotes/_build/html/_sources/teachers.md b/doc/LectureNotes/_build/html/_sources/teachers.md index a1bb4f199..1a65c3772 100644 --- a/doc/LectureNotes/_build/html/_sources/teachers.md +++ b/doc/LectureNotes/_build/html/_sources/teachers.md @@ -9,13 +9,13 @@ * _Office hours_: *Anytime*! Feel free to send an email for planning. Both in person meetings or digital meetings are possible. ## Teaching Assistants Fall semester 2021 -* Øyvind Sigmundson Schøyen, oyvinssc@student.matnat.uio.no -* Stian Bilek, stian.bilek@fys.uio.no -* Linus Ekstrøm, linueks@gmail.com, linus.ekstrom@fys.uio.no -* Nicholas Karlsen, nicholaskarlsen1102@gmail.com, nicholas.karlsen@fys.uio.no -* Bendik Steinsvåg Dalen, b.s.dalen@fys.uio.no -* Philip Karim Sørli Niane, p.k.s.niane@fys.uio.no - +* Bennosh Ashrafi, behnoosh.ashrafi@fys.uio.no +* Frida Marie Engøy Westbye, f.m.e.westby@fys.uio.no +* Ida Torkjellsdatter Storehaug, i.t.storehaug@fys.uio.no +* Joao Guilherme Carvalho Inacio, joaogca@fys.uio.no +* Sigurd Sørlie Rustad, s.s.rustad@fys.uio.no +* Stian Dysthe Bilek stian.bilek@fys.uio.no +* Øyvind Sigmundson Schøyen, oyvinssc@student.matnat.uio.no ## Grading diff --git a/doc/LectureNotes/_build/html/_static/basic.css b/doc/LectureNotes/_build/html/_static/basic.css index 10301e15e..18d05abeb 100644 --- a/doc/LectureNotes/_build/html/_static/basic.css +++ b/doc/LectureNotes/_build/html/_static/basic.css @@ -731,8 +731,9 @@ dl.glossary dt { .classifier:before { font-style: normal; - margin: 0.5em; + margin: 0 0.5em; content: ":"; + display: inline-block; } abbr, acronym { diff --git a/doc/LectureNotes/_build/html/_static/copy-button.svg b/doc/LectureNotes/_build/html/_static/copy-button.svg index b888a20df..9c074dae5 100644 --- a/doc/LectureNotes/_build/html/_static/copy-button.svg +++ b/doc/LectureNotes/_build/html/_static/copy-button.svg @@ -1,5 +1,5 @@ - + - - + + diff --git a/doc/LectureNotes/_build/html/_static/copybutton.css b/doc/LectureNotes/_build/html/_static/copybutton.css index 5d291490c..40eafe5fc 100644 --- a/doc/LectureNotes/_build/html/_static/copybutton.css +++ b/doc/LectureNotes/_build/html/_static/copybutton.css @@ -3,7 +3,7 @@ button.copybtn { position: absolute; display: flex; top: .3em; - right: .5em; + right: .3em; width: 1.7em; height: 1.7em; opacity: 0; @@ -13,17 +13,22 @@ button.copybtn { border: none; outline: none; border-radius: 0.4em; - border: #e1e1e1 1px solid; - background-color: rgb(245, 245, 245); + /* The colors that GitHub uses */ + border: #1b1f2426 1px solid; + background-color: #f6f8fa; + color: #57606a; } button.copybtn.success { border-color: #22863a; + color: #22863a; } -button.copybtn img { - width: 100%; - padding: .2em; +button.copybtn svg { + stroke: currentColor; + width: 1.5em; + height: 1.5em; + padding: 0.1em; } div.highlight { @@ -79,3 +84,10 @@ div.highlight { transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); transition-delay: .5s; } + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/doc/LectureNotes/_build/html/_static/copybutton.js b/doc/LectureNotes/_build/html/_static/copybutton.js index 482bda03c..40ac33108 100644 --- a/doc/LectureNotes/_build/html/_static/copybutton.js +++ b/doc/LectureNotes/_build/html/_static/copybutton.js @@ -35,6 +35,12 @@ const messages = { 'copy_to_clipboard': '复制到剪贴板', 'copy_success': '复制成功!', 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', } } @@ -49,7 +55,25 @@ if (doc_url_root == '#') { doc_url_root = ''; } -const path_static = `${doc_url_root}_static/`; +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} /** * Set up copy/paste for code blocks @@ -88,9 +112,8 @@ const temporarilyChangeTooltip = (el, oldText, newText) => { // Changes the copy button icon for two seconds, then changes it back const temporarilyChangeIcon = (el) => { - img = el.querySelector("img"); - img.setAttribute('src', `${path_static}check-solid.svg`) - setTimeout(() => img.setAttribute('src', `${path_static}copy-button.svg`), 2000) + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, 2000) } const addCopyButtonToCodeCells = () => { @@ -109,7 +132,7 @@ const addCopyButtonToCodeCells = () => { const clipboardButton = id => `${messages[locale]['copy_to_clipboard']} + ${iconCopy} ` codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) }) diff --git a/doc/LectureNotes/_build/html/_static/css/blank.css b/doc/LectureNotes/_build/html/_static/css/blank.css new file mode 100644 index 000000000..8a686ec75 --- /dev/null +++ b/doc/LectureNotes/_build/html/_static/css/blank.css @@ -0,0 +1,2 @@ +/* This file is intentionally left blank to override the stylesheet of the +parent theme via theme.conf. The parent style we import directly in theme.css */ \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/_static/css/index.ff1ffe594081f20da1ef19478df9384b.css b/doc/LectureNotes/_build/html/_static/css/index.ff1ffe594081f20da1ef19478df9384b.css new file mode 100644 index 000000000..9b1c5d792 --- /dev/null +++ b/doc/LectureNotes/_build/html/_static/css/index.ff1ffe594081f20da1ef19478df9384b.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v4.5.0 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:540px;--breakpoint-md:720px;--breakpoint-lg:960px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;line-height:1.5;color:#212529;text-align:left}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;background-color:transparent}a:hover{color:#0056b3}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container{max-width:540px}}@media (min-width:720px){.container{max-width:720px}}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1400px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container,.container-sm{max-width:540px}}@media (min-width:720px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:960px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1400px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:540px){.col-sm{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:720px){.col-md{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:960px){.col-lg{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:539.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:719.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:959.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:540px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:540px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:720px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:960px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:539.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:540px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:719.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:720px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:959.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:960px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:540px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:540px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:540px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb,.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:540px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:540px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:720px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:960px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:540px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:min-content}.modal-sm{max-width:300px}}@media (min-width:960px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:540px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:720px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:960px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.85714%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:720px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:960px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:540px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:720px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:960px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:540px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:720px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:960px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:540px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:720px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:960px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:960px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}html{font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 12px)}body{padding-top:calc(var(--pst-header-height) + 20px);background-color:#fff;font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;color:rgba(var(--pst-color-text-base),1)}p{margin-bottom:1.15rem;font-size:1em;color:rgba(var(--pst-color-paragraph),1)}p.rubric{border-bottom:1px solid #c9c9c9}a{color:rgba(var(--pst-color-link),1);text-decoration:none}a:hover{color:rgba(var(--pst-color-link-hover),1);text-decoration:underline}a.headerlink{color:rgba(var(--pst-color-headerlink),1);font-size:.8em;padding:0 4px;text-decoration:none}a.headerlink:hover{background-color:rgba(var(--pst-color-headerlink),1);color:rgba(var(--pst-color-headerlink-hover),1)}.heading-style,h1,h2,h3,h4,h5,h6{margin:2.75rem 0 1.05rem;font-family:var(--pst-font-family-heading);font-weight:400;line-height:1.15}h1{margin-top:0;font-size:var(--pst-font-size-h1);color:rgba(var(--pst-color-h1),1)}h2{font-size:var(--pst-font-size-h2);color:rgba(var(--pst-color-h2),1)}h3{font-size:var(--pst-font-size-h3);color:rgba(var(--pst-color-h3),1)}h4{font-size:var(--pst-font-size-h4);color:rgba(var(--pst-color-h4),1)}h5{font-size:var(--pst-font-size-h5);color:rgba(var(--pst-color-h5),1)}h6{font-size:var(--pst-font-size-h6);color:rgba(var(--pst-color-h6),1)}.text_small,small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid #e5e5e5}code,kbd,pre,samp{font-family:var(--pst-font-family-monospace)}code{color:rgba(var(--pst-color-inline-code),1)}pre{margin:1.5em 0;padding:10px;background-color:rgba(var(--pst-color-preformatted-background),1);color:rgba(var(--pst-color-preformatted-text),1);line-height:1.2em;border:1px solid #c9c9c9;border-radius:.2rem;box-shadow:1px 1px 1px #d8d8d8}dd{margin-top:3px;margin-bottom:10px;margin-left:30px}.navbar{position:fixed;min-height:var(--pst-header-height);width:100%;padding:0}.navbar .container-xl{height:100%}@media (min-width:960px){.navbar #navbar-end>.navbar-end-item{display:inline-block}}.navbar-brand{position:relative;height:var(--pst-header-height);width:auto;padding:.5rem 0}.navbar-brand img{max-width:100%;height:100%;width:auto}.navbar-light{background:#fff!important;box-shadow:0 .125rem .25rem 0 rgba(0,0,0,.11)}.navbar-light .navbar-nav li a.nav-link{padding:0 .5rem;color:rgba(var(--pst-color-navbar-link),1)}.navbar-light .navbar-nav li a.nav-link:hover{color:rgba(var(--pst-color-navbar-link-hover),1)}.navbar-light .navbar-nav>.active>.nav-link{font-weight:600;color:rgba(var(--pst-color-navbar-link-active),1)}.navbar-header a{padding:0 15px}.admonition,div.admonition{margin:1.5625em auto;padding:0 .6rem .8rem;overflow:hidden;page-break-inside:avoid;border-left:.2rem solid;border-left-color:rgba(var(--pst-color-admonition-default),1);border-bottom-color:rgba(var(--pst-color-admonition-default),1);border-right-color:rgba(var(--pst-color-admonition-default),1);border-top-color:rgba(var(--pst-color-admonition-default),1);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);transition:color .25s,background-color .25s,border-color .25s}.admonition :last-child,div.admonition :last-child{margin-bottom:0}.admonition p.admonition-title~*,div.admonition p.admonition-title~*{padding:0 1.4rem}.admonition>ol,.admonition>ul,div.admonition>ol,div.admonition>ul{margin-left:1em}.admonition>.admonition-title,div.admonition>.admonition-title{position:relative;margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(var(--pst-color-admonition-default),.1)}.admonition>.admonition-title:before,div.admonition>.admonition-title:before{position:absolute;left:.6rem;width:1rem;height:1rem;color:rgba(var(--pst-color-admonition-default),1);font-family:Font Awesome\ 5 Free;font-weight:900;content:var(--pst-icon-admonition-default)}.admonition>.admonition-title+*,div.admonition>.admonition-title+*{margin-top:.4em}.admonition.attention,div.admonition.attention{border-color:rgba(var(--pst-color-admonition-attention),1)}.admonition.attention>.admonition-title,div.admonition.attention>.admonition-title{background-color:rgba(var(--pst-color-admonition-attention),.1)}.admonition.attention>.admonition-title:before,div.admonition.attention>.admonition-title:before{color:rgba(var(--pst-color-admonition-attention),1);content:var(--pst-icon-admonition-attention)}.admonition.caution,div.admonition.caution{border-color:rgba(var(--pst-color-admonition-caution),1)}.admonition.caution>.admonition-title,div.admonition.caution>.admonition-title{background-color:rgba(var(--pst-color-admonition-caution),.1)}.admonition.caution>.admonition-title:before,div.admonition.caution>.admonition-title:before{color:rgba(var(--pst-color-admonition-caution),1);content:var(--pst-icon-admonition-caution)}.admonition.warning,div.admonition.warning{border-color:rgba(var(--pst-color-admonition-warning),1)}.admonition.warning>.admonition-title,div.admonition.warning>.admonition-title{background-color:rgba(var(--pst-color-admonition-warning),.1)}.admonition.warning>.admonition-title:before,div.admonition.warning>.admonition-title:before{color:rgba(var(--pst-color-admonition-warning),1);content:var(--pst-icon-admonition-warning)}.admonition.danger,div.admonition.danger{border-color:rgba(var(--pst-color-admonition-danger),1)}.admonition.danger>.admonition-title,div.admonition.danger>.admonition-title{background-color:rgba(var(--pst-color-admonition-danger),.1)}.admonition.danger>.admonition-title:before,div.admonition.danger>.admonition-title:before{color:rgba(var(--pst-color-admonition-danger),1);content:var(--pst-icon-admonition-danger)}.admonition.error,div.admonition.error{border-color:rgba(var(--pst-color-admonition-error),1)}.admonition.error>.admonition-title,div.admonition.error>.admonition-title{background-color:rgba(var(--pst-color-admonition-error),.1)}.admonition.error>.admonition-title:before,div.admonition.error>.admonition-title:before{color:rgba(var(--pst-color-admonition-error),1);content:var(--pst-icon-admonition-error)}.admonition.hint,div.admonition.hint{border-color:rgba(var(--pst-color-admonition-hint),1)}.admonition.hint>.admonition-title,div.admonition.hint>.admonition-title{background-color:rgba(var(--pst-color-admonition-hint),.1)}.admonition.hint>.admonition-title:before,div.admonition.hint>.admonition-title:before{color:rgba(var(--pst-color-admonition-hint),1);content:var(--pst-icon-admonition-hint)}.admonition.tip,div.admonition.tip{border-color:rgba(var(--pst-color-admonition-tip),1)}.admonition.tip>.admonition-title,div.admonition.tip>.admonition-title{background-color:rgba(var(--pst-color-admonition-tip),.1)}.admonition.tip>.admonition-title:before,div.admonition.tip>.admonition-title:before{color:rgba(var(--pst-color-admonition-tip),1);content:var(--pst-icon-admonition-tip)}.admonition.important,div.admonition.important{border-color:rgba(var(--pst-color-admonition-important),1)}.admonition.important>.admonition-title,div.admonition.important>.admonition-title{background-color:rgba(var(--pst-color-admonition-important),.1)}.admonition.important>.admonition-title:before,div.admonition.important>.admonition-title:before{color:rgba(var(--pst-color-admonition-important),1);content:var(--pst-icon-admonition-important)}.admonition.note,div.admonition.note{border-color:rgba(var(--pst-color-admonition-note),1)}.admonition.note>.admonition-title,div.admonition.note>.admonition-title{background-color:rgba(var(--pst-color-admonition-note),.1)}.admonition.note>.admonition-title:before,div.admonition.note>.admonition-title:before{color:rgba(var(--pst-color-admonition-note),1);content:var(--pst-icon-admonition-note)}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{padding:1px 8px 1px 5px;white-space:nowrap;background-color:#eee}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}.sig{font-family:var(--pst-font-family-monospace)}.sig-inline.c-texpr,.sig-inline.cpp-texpr{font-family:unset}.sig.c .k,.sig.c .kt,.sig.c .m,.sig.c .s,.sig.c .sc,.sig.cpp .k,.sig.cpp .kt,.sig.cpp .m,.sig.cpp .s,.sig.cpp .sc{color:rgba(var(--pst-color-text-base),1)}.sig-name{color:rgba(var(--pst-color-inline-code),1)}blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}dt.label>span.brackets:not(:only-child):before{content:"["}dt.label>span.brackets:not(:only-child):after{content:"]"}a.footnote-reference{vertical-align:super;font-size:small}div.deprecated{margin-bottom:10px;margin-top:10px;padding:7px;background-color:#f3e5e5;border:1px solid #eed3d7;border-radius:.5rem}div.deprecated p{color:#b94a48;display:inline}.topic{background-color:#eee}.seealso dd{margin-top:0;margin-bottom:0}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{background-color:#f4debf;border-top:1px solid #ac9;border-bottom:1px solid #ac9}span.guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}footer{width:100%;border-top:1px solid #ccc;padding:10px}footer .footer-item p{margin-bottom:0}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px}.bd-search .icon{position:absolute;color:#a4a6a7;left:25px;top:25px}.bd-search input{border-radius:0;border:0;border-bottom:1px solid #e5e5e5;padding-left:35px}.bd-toc{-ms-flex-order:2;order:2;height:calc(100vh - 2rem);overflow-y:auto}@supports (position:-webkit-sticky) or (position:sticky){.bd-toc{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);height:calc(100vh - 5rem);overflow-y:auto}}.bd-toc .onthispage{color:#a4a6a7}.section-nav{padding-left:0;border-left:1px solid #eee;border-bottom:none}.section-nav ul{padding-left:1rem}.toc-entry,.toc-entry a{display:block}.toc-entry a{padding:.125rem 1.5rem;color:rgba(var(--pst-color-toc-link),1)}@media (min-width:1200px){.toc-entry a{padding-right:0}}.toc-entry a:hover{color:rgba(var(--pst-color-toc-link-hover),1);text-decoration:none}.bd-sidebar{padding-top:1em}@media (min-width:720px){.bd-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports (position:-webkit-sticky) or (position:sticky){.bd-sidebar{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);z-index:1000;height:calc(100vh - var(--pst-header-height) - 20px)}}}.bd-sidebar.no-sidebar{border-right:0}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:720px){.bd-links{display:block}@supports (position:-webkit-sticky) or (position:sticky){.bd-links{max-height:calc(100vh - 11rem);overflow-y:auto}}}.bd-sidenav{display:none}.bd-content{padding-top:20px}.bd-content .section{max-width:100%}.bd-content .section table{display:block;overflow:auto}.bd-toc-link{display:block;padding:.25rem 1.5rem;font-weight:600;color:rgba(0,0,0,.65)}.bd-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:rgba(0,0,0,.85)}.bd-toc-item.active>.bd-toc-link:hover{background-color:transparent}.bd-toc-item.active>.bd-sidenav{display:block}nav.bd-links p.caption{font-size:var(--pst-sidebar-caption-font-size);text-transform:uppercase;font-weight:700;position:relative;margin-top:1.25em;margin-bottom:.5em;padding:0 1.5rem;color:rgba(var(--pst-color-sidebar-caption),1)}nav.bd-links p.caption:first-child{margin-top:0}.bd-sidebar .nav{font-size:var(--pst-sidebar-font-size)}.bd-sidebar .nav ul{list-style:none;padding:0 0 0 1.5rem}.bd-sidebar .nav li>a{display:block;padding:.25rem 1.5rem;color:rgba(var(--pst-color-sidebar-link),1)}.bd-sidebar .nav li>a:hover{color:rgba(var(--pst-color-sidebar-link-hover),1);text-decoration:none;background-color:transparent}.bd-sidebar .nav li>a.reference.external:after{font-family:Font Awesome\ 5 Free;font-weight:900;content:"\f35d";font-size:.75em;margin-left:.3em}.bd-sidebar .nav .active:hover>a,.bd-sidebar .nav .active>a{font-weight:600;color:rgba(var(--pst-color-sidebar-link-active),1)}.toc-h2{font-size:.85rem}.toc-h3{font-size:.75rem}.toc-h4{font-size:.65rem}.toc-entry>.nav-link.active{font-weight:600;color:#130654;color:rgba(var(--pst-color-toc-link-active),1);background-color:transparent;border-left:2px solid rgba(var(--pst-color-toc-link-active),1)}.nav-link:hover{border-style:none}#navbar-main-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.visible,.bd-toc .nav>.active>ul{display:block}.prev-next-area{margin:20px 0}.prev-next-area p{margin:0 .3em;line-height:1.3em}.prev-next-area i{font-size:1.2em}.prev-next-area a{display:flex;align-items:center;border:none;padding:10px;max-width:45%;overflow-x:hidden;color:rgba(0,0,0,.65);text-decoration:none}.prev-next-area a p.prev-next-title{color:rgba(var(--pst-color-link),1);font-weight:600;font-size:1.1em}.prev-next-area a:hover p.prev-next-title{text-decoration:underline}.prev-next-area a .prev-next-info{flex-direction:column;margin:0 .5em}.prev-next-area a .prev-next-info .prev-next-subtitle{text-transform:capitalize}.prev-next-area a.left-prev{float:left}.prev-next-area a.right-next{float:right}.prev-next-area a.right-next div.prev-next-info{text-align:right}.alert{padding-bottom:0}.alert-info a{color:#e83e8c}#navbar-icon-links i.fa,#navbar-icon-links i.fab,#navbar-icon-links i.far,#navbar-icon-links i.fas{vertical-align:middle;font-style:normal;font-size:1.5rem;line-height:1.25}#navbar-icon-links i.fa-github-square:before{color:#333}#navbar-icon-links i.fa-twitter-square:before{color:#55acee}#navbar-icon-links i.fa-gitlab:before{color:#548}#navbar-icon-links i.fa-bitbucket:before{color:#0052cc}.tocsection{border-left:1px solid #eee;padding:.3rem 1.5rem}.tocsection i{padding-right:.5rem}.editthispage{padding-top:2rem}.editthispage a{color:var(--pst-color-sidebar-link-active)}.xr-wrap[hidden]{display:block!important}.toctree-checkbox{position:absolute;display:none}.toctree-checkbox~ul{display:none}.toctree-checkbox~label i{transform:rotate(0deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label i{transform:rotate(180deg)}.bd-sidebar li{position:relative}.bd-sidebar label{position:absolute;top:0;right:0;height:30px;width:30px;cursor:pointer;display:flex;justify-content:center;align-items:center}.bd-sidebar label:hover{background:rgba(var(--pst-color-sidebar-expander-background-hover),1)}.bd-sidebar label i{display:inline-block;font-size:.75rem;text-align:center}.bd-sidebar label i:hover{color:rgba(var(--pst-color-sidebar-link-hover),1)}.bd-sidebar li.has-children>.reference{padding-right:30px}div.doctest>div.highlight span.gp,span.linenos,table.highlighttable td.linenos{user-select:none;-webkit-user-select:text;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.docutils.container{padding-left:unset;padding-right:unset} \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/_static/css/theme.css b/doc/LectureNotes/_build/html/_static/css/theme.css index 3f6e79dab..2e03fe372 100644 --- a/doc/LectureNotes/_build/html/_static/css/theme.css +++ b/doc/LectureNotes/_build/html/_static/css/theme.css @@ -1,3 +1,6 @@ +/* Provided by the Sphinx base theme template at build time */ +@import "../basic.css"; + :root { /***************************************************************************** * Theme config diff --git a/doc/LectureNotes/_build/html/_static/js/index.be7d3bbb2ef33a8344ce.js b/doc/LectureNotes/_build/html/_static/js/index.be7d3bbb2ef33a8344ce.js new file mode 100644 index 000000000..b71f7fcc2 --- /dev/null +++ b/doc/LectureNotes/_build/html/_static/js/index.be7d3bbb2ef33a8344ce.js @@ -0,0 +1,32 @@ +!function(t){var e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(i,o,function(e){return t[e]}.bind(null,o));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=2)}([function(t,e){t.exports=jQuery},function(t,e,n){"use strict";n.r(e),function(t){ +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var n="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,i=function(){for(var t=["Edge","Trident","Firefox"],e=0;e=0)return 1;return 0}();var o=n&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),i))}};function r(t){return t&&"[object Function]"==={}.toString.call(t)}function s(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function a(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function l(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=s(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:l(a(t))}function c(t){return t&&t.referenceNode?t.referenceNode:t}var u=n&&!(!window.MSInputMethodContext||!document.documentMode),h=n&&/MSIE 10/.test(navigator.userAgent);function f(t){return 11===t?u:10===t?h:u||h}function d(t){if(!t)return document.documentElement;for(var e=f(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===s(n,"position")?d(n):n:t?t.ownerDocument.documentElement:document.documentElement}function p(t){return null!==t.parentNode?p(t.parentNode):t}function m(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&d(s.firstElementChild)!==s?d(l):l;var c=p(t);return c.host?m(c.host,e):m(t,p(e).host)}function g(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function v(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=g(e,"top"),o=g(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function _(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+i+"Width"])}function b(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],f(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function y(t){var e=t.body,n=t.documentElement,i=f(10)&&getComputedStyle(n);return{height:b("Height",e,n,i),width:b("Width",e,n,i)}}var w=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},E=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=f(10),o="HTML"===e.nodeName,r=D(t),a=D(e),c=l(t),u=s(e),h=parseFloat(u.borderTopWidth),d=parseFloat(u.borderLeftWidth);n&&o&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var p=S({top:r.top-a.top-h,left:r.left-a.left-d,width:r.width,height:r.height});if(p.marginTop=0,p.marginLeft=0,!i&&o){var m=parseFloat(u.marginTop),g=parseFloat(u.marginLeft);p.top-=h-m,p.bottom-=h-m,p.left-=d-g,p.right-=d-g,p.marginTop=m,p.marginLeft=g}return(i&&!n?e.contains(c):e===c&&"BODY"!==c.nodeName)&&(p=v(p,e)),p}function k(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=N(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:g(n),a=e?0:g(n,"left"),l={top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r};return S(l)}function O(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===s(t,"position"))return!0;var n=a(t);return!!n&&O(n)}function A(t){if(!t||!t.parentElement||f())return document.documentElement;for(var e=t.parentElement;e&&"none"===s(e,"transform");)e=e.parentElement;return e||document.documentElement}function I(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?A(t):m(t,c(e));if("viewport"===i)r=k(s,o);else{var u=void 0;"scrollParent"===i?"BODY"===(u=l(a(e))).nodeName&&(u=t.ownerDocument.documentElement):u="window"===i?t.ownerDocument.documentElement:i;var h=N(u,s,o);if("HTML"!==u.nodeName||O(s))r=h;else{var f=y(t.ownerDocument),d=f.height,p=f.width;r.top+=h.top-h.marginTop,r.bottom=d+h.top,r.left+=h.left-h.marginLeft,r.right=p+h.left}}var g="number"==typeof(n=n||0);return r.left+=g?n:n.left||0,r.top+=g?n:n.top||0,r.right-=g?n:n.right||0,r.bottom-=g?n:n.bottom||0,r}function x(t){return t.width*t.height}function j(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=I(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map((function(t){return C({key:t},a[t],{area:x(a[t])})})).sort((function(t,e){return e.area-t.area})),c=l.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),u=c.length>0?c[0].key:l[0].key,h=t.split("-")[1];return u+(h?"-"+h:"")}function L(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?A(e):m(e,c(n));return N(n,o,i)}function P(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function F(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function R(t,e,n){n=n.split("-")[0];var i=P(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[F(a)],o}function M(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function B(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=M(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&r(n)&&(e.offsets.popper=S(e.offsets.popper),e.offsets.reference=S(e.offsets.reference),e=n(e,t))})),e}function H(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=j(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=R(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=B(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function q(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function Q(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],n=Z.indexOf(t),i=Z.slice(n+1).concat(Z.slice(0,n));return e?i.reverse():i}var et="flip",nt="clockwise",it="counterclockwise";function ot(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=s.indexOf(M(s,(function(t){return-1!==t.search(/,|\s/)})));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map((function(t,i){var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return S(a)[e]/100*r}if("vh"===s||"vw"===s){return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r}return r}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){X(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var rt={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",u={start:T({},l,r[l]),end:T({},l,r[l]+r[c]-s[c])};t.offsets.popper=C({},s,u[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=X(+n)?[+n,0]:ot(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||d(t.instance.popper);t.instance.reference===n&&(n=d(n));var i=Q("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=I(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,u=t.offsets.popper,h={primary:function(t){var n=u[t];return u[t]l[t]&&!e.escapeWithReference&&(i=Math.min(u[n],l[t]-("right"===t?u.width:u.height))),T({},n,i)}};return c.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=C({},u,h[e](t))})),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!G(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,a=r.popper,l=r.reference,c=-1!==["left","right"].indexOf(o),u=c?"height":"width",h=c?"Top":"Left",f=h.toLowerCase(),d=c?"left":"top",p=c?"bottom":"right",m=P(i)[u];l[p]-ma[p]&&(t.offsets.popper[f]+=l[f]+m-a[p]),t.offsets.popper=S(t.offsets.popper);var g=l[f]+l[u]/2-m/2,v=s(t.instance.popper),_=parseFloat(v["margin"+h]),b=parseFloat(v["border"+h+"Width"]),y=g-t.offsets.popper[f]-_-b;return y=Math.max(Math.min(a[u]-m,y),0),t.arrowElement=i,t.offsets.arrow=(T(n={},f,Math.round(y)),T(n,d,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(q(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=I(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=F(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case et:s=[i,o];break;case nt:s=tt(i);break;case it:s=tt(i,!0);break;default:s=e.behavior}return s.forEach((function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=F(i);var c=t.offsets.popper,u=t.offsets.reference,h=Math.floor,f="left"===i&&h(c.right)>h(u.left)||"right"===i&&h(c.left)h(u.top)||"bottom"===i&&h(c.top)h(n.right),m=h(c.top)h(n.bottom),v="left"===i&&d||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,_=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(_&&"start"===r&&d||_&&"end"===r&&p||!_&&"start"===r&&m||!_&&"end"===r&&g),y=!!e.flipVariationsByContent&&(_&&"start"===r&&p||_&&"end"===r&&d||!_&&"start"===r&&g||!_&&"end"===r&&m),w=b||y;(f||v||w)&&(t.flipped=!0,(f||v)&&(i=s[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=C({},t.offsets.popper,R(t.instance.popper,t.offsets.reference,t.placement)),t=B(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=F(e),t.offsets.popper=S(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!G(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=M(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};w(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=o(this.update.bind(this)),this.options=C({},t.Defaults,s),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(C({},t.Defaults.modifiers,s.modifiers)).forEach((function(e){i.options.modifiers[e]=C({},t.Defaults.modifiers[e]||{},s.modifiers?s.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return C({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&r(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return E(t,[{key:"update",value:function(){return H.call(this)}},{key:"destroy",value:function(){return W.call(this)}},{key:"enableEventListeners",value:function(){return Y.call(this)}},{key:"disableEventListeners",value:function(){return z.call(this)}}]),t}();st.Utils=("undefined"!=typeof window?window:t).PopperUtils,st.placements=J,st.Defaults=rt,e.default=st}.call(this,n(4))},function(t,e,n){t.exports=n(5)},function(t,e,n){ +/*! + * Bootstrap v4.5.0 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function(t,e,n){"use strict";function i(t,e){for(var n=0;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};c.jQueryDetection(),e.fn.emulateTransitionEnd=l,e.event.special[c.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var u="alert",h=e.fn[u],f=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=c.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest(".alert")[0]),i},n._triggerCloseEvent=function(t){var n=e.Event("close.bs.alert");return e(t).trigger(n),n},n._removeElement=function(t){var n=this;if(e(t).removeClass("show"),e(t).hasClass("fade")){var i=c.getTransitionDurationFromElement(t);e(t).one(c.TRANSITION_END,(function(e){return n._destroyElement(t,e)})).emulateTransitionEnd(i)}else this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.alert");o||(o=new t(this),i.data("bs.alert",o)),"close"===n&&o[n](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(t,null,[{key:"VERSION",get:function(){return"4.5.0"}}]),t}();e(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',f._handleDismiss(new f)),e.fn[u]=f._jQueryInterface,e.fn[u].Constructor=f,e.fn[u].noConflict=function(){return e.fn[u]=h,f._jQueryInterface};var d=e.fn.button,p=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,i=e(this._element).closest('[data-toggle="buttons"]')[0];if(i){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var r=i.querySelector(".active");r&&e(r).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),e(o).trigger("change")),o.focus(),n=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(n&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&e(this._element).toggleClass("active"))},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.0"}}]),t}();e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=t.target,i=n;if(e(n).hasClass("btn")||(n=e(n).closest(".btn")[0]),!n||n.hasAttribute("disabled")||n.classList.contains("disabled"))t.preventDefault();else{var o=n.querySelector('input:not([type="hidden"])');if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();"LABEL"===i.tagName&&o&&"checkbox"===o.type&&t.preventDefault(),p._jQueryInterface.call(e(n),"toggle")}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=e(t.target).closest(".btn")[0];e(n).toggleClass("focus",/^focus(in)?$/.test(t.type))})),e(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var n=t.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(c.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var n=this;this._activeElement=this._element.querySelector(".active.carousel-item");var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one("slid.bs.carousel",(function(){return n.to(t)}));else{if(i===t)return this.pause(),void this.cycle();var o=t>i?"next":"prev";this._slide(o,this._items[t])}},n.dispose=function(){e(this._element).off(g),e.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=a(a({},_),t),c.typeCheckConfig(m,t,b),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&e(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var n=function(e){t._pointerEvent&&y[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&y[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};e(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(e(this._element).on("pointerdown.bs.carousel",(function(t){return n(t)})),e(this._element).on("pointerup.bs.carousel",(function(t){return i(t)})),this._element.classList.add("pointer-event")):(e(this._element).on("touchstart.bs.carousel",(function(t){return n(t)})),e(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),e(this._element).on("touchend.bs.carousel",(function(t){return i(t)})))}},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+("prev"===t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},n._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(".active.carousel-item")),r=e.Event("slide.bs.carousel",{relatedTarget:t,direction:n,from:o,to:i});return e(this._element).trigger(r),r},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var n=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));e(n).removeClass("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&e(i).addClass("active")}},n._slide=function(t,n){var i,o,r,s=this,a=this._element.querySelector(".active.carousel-item"),l=this._getItemIndex(a),u=n||a&&this._getItemByDirection(t,a),h=this._getItemIndex(u),f=Boolean(this._interval);if("next"===t?(i="carousel-item-left",o="carousel-item-next",r="left"):(i="carousel-item-right",o="carousel-item-prev",r="right"),u&&e(u).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(u,r).isDefaultPrevented()&&a&&u){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(u);var d=e.Event("slid.bs.carousel",{relatedTarget:u,direction:r,from:l,to:h});if(e(this._element).hasClass("slide")){e(u).addClass(o),c.reflow(u),e(a).addClass(i),e(u).addClass(i);var p=parseInt(u.getAttribute("data-interval"),10);p?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=p):this._config.interval=this._config.defaultInterval||this._config.interval;var m=c.getTransitionDurationFromElement(a);e(a).one(c.TRANSITION_END,(function(){e(u).removeClass(i+" "+o).addClass("active"),e(a).removeClass("active "+o+" "+i),s._isSliding=!1,setTimeout((function(){return e(s._element).trigger(d)}),0)})).emulateTransitionEnd(m)}else e(a).removeClass("active"),e(u).addClass("active"),this._isSliding=!1,e(this._element).trigger(d);f&&this.cycle()}},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.carousel"),o=a(a({},_),e(this).data());"object"==typeof n&&(o=a(a({},o),n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(this,o),e(this).data("bs.carousel",i)),"number"==typeof n)i.to(n);else if("string"==typeof r){if(void 0===i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())}))},t._dataApiClickHandler=function(n){var i=c.getSelectorFromElement(this);if(i){var o=e(i)[0];if(o&&e(o).hasClass("carousel")){var r=a(a({},e(o).data()),e(this).data()),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._jQueryInterface.call(e(o),r),s&&e(o).data("bs.carousel").to(s),n.preventDefault()}}},o(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return _}}]),t}();e(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",w._dataApiClickHandler),e(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),n=0,i=t.length;n0&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var n=t.prototype;return n.toggle=function(){e(this._element).hasClass("show")?this.hide():this.show()},n.show=function(){var n,i,o=this;if(!(this._isTransitioning||e(this._element).hasClass("show")||(this._parent&&0===(n=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains("collapse")}))).length&&(n=null),n&&(i=e(n).not(this._selector).data("bs.collapse"))&&i._isTransitioning))){var r=e.Event("show.bs.collapse");if(e(this._element).trigger(r),!r.isDefaultPrevented()){n&&(t._jQueryInterface.call(e(n).not(this._selector),"hide"),i||e(n).data("bs.collapse",null));var s=this._getDimension();e(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[s]=0,this._triggerArray.length&&e(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),l=c.getTransitionDurationFromElement(this._element);e(this._element).one(c.TRANSITION_END,(function(){e(o._element).removeClass("collapsing").addClass("collapse show"),o._element.style[s]="",o.setTransitioning(!1),e(o._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(l),this._element.style[s]=this._element[a]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass("show")){var n=e.Event("hide.bs.collapse");if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",c.reflow(this._element),e(this._element).addClass("collapsing").removeClass("collapse show");var o=this._triggerArray.length;if(o>0)for(var r=0;r0},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=a(a({},e.offsets),t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),a(a({},t),this._config.popperConfig)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.dropdown");if(i||(i=new t(this,"object"==typeof n?n:null),e(this).data("bs.dropdown",i)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},t._clearMenus=function(n){if(!n||3!==n.which&&("keyup"!==n.type||9===n.which))for(var i=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),o=0,r=i.length;o0&&s--,40===n.which&&sdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:M,popperConfig:null},K={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},$=function(){function t(t,e){if(void 0===n)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var i=t.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var o=c.findShadowRoot(this.element),r=e.contains(null!==o?o:this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!r)return;var s=this.getTipElement(),a=c.getUID(this.constructor.NAME);s.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&e(s).addClass("fade");var l="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(l);this.addAttachmentClass(u);var h=this._getContainer();e(s).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(s).appendTo(h),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,s,this._getPopperConfig(u)),e(s).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var f=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var d=c.getTransitionDurationFromElement(this.tip);e(this.tip).one(c.TRANSITION_END,f).emulateTransitionEnd(d)}else f()}},i.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),r=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var s=c.getTransitionDurationFromElement(i);e(i).one(c.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},i.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},i.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=q(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getPopperConfig=function(t){var e=this;return a(a({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),this.config.popperConfig)},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=a(a({},e.offsets),t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:c.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},i._getAttachment=function(t){return z[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=a(a({},this.config),{},{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},i._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==V.indexOf(t)&&delete n[t]})),"number"==typeof(t=a(a(a({},this.constructor.Default),n),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),c.typeCheckConfig(Q,t,this.constructor.DefaultType),t.sanitize&&(t.template=q(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(U);null!==n&&n.length&&t.removeClass(n.join(""))},i._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return X}},{key:"NAME",get:function(){return Q}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return K}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Y}}]),t}();e.fn[Q]=$._jQueryInterface,e.fn[Q].Constructor=$,e.fn[Q].noConflict=function(){return e.fn[Q]=W,$._jQueryInterface};var G="popover",J=e.fn[G],Z=new RegExp("(^|\\s)bs-popover\\S+","g"),tt=a(a({},$.Default),{},{placement:"right",trigger:"click",content:"",template:''}),et=a(a({},$.DefaultType),{},{content:"(string|element|function)"}),nt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},it=function(t){var n,i;function r(){return t.apply(this,arguments)||this}i=t,(n=r).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var s=r.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},s.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},s.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(Z);null!==n&&n.length>0&&t.removeClass(n.join(""))},r._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new r(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(r,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return tt}},{key:"NAME",get:function(){return G}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return nt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return et}}]),r}($);e.fn[G]=it._jQueryInterface,e.fn[G].Constructor=it,e.fn[G].noConflict=function(){return e.fn[G]=J,it._jQueryInterface};var ot="scrollspy",rt=e.fn[ot],st={offset:10,method:"auto",target:""},at={offset:"number",method:"string",target:"(string|element)"},lt=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,r=c.getSelectorFromElement(t);if(r&&(n=document.querySelector(r)),n){var s=n.getBoundingClientRect();if(s.width||s.height)return[e(n)[i]().top+o,r]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=a(a({},st),"object"==typeof t&&t?t:{})).target&&c.isElement(t.target)){var n=e(t.target).attr("id");n||(n=c.getUID(ot),e(t.target).attr("id",n)),t.target="#"+n}return c.typeCheckConfig(ot,t,at),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t li > .active":".active";i=(i=e.makeArray(e(o).find(s)))[i.length-1]}var a=e.Event("hide.bs.tab",{relatedTarget:this._element}),l=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(a),e(this._element).trigger(l),!l.isDefaultPrevented()&&!a.isDefaultPrevented()){r&&(n=document.querySelector(r)),this._activate(this._element,o);var u=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,u):u()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,r=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],s=i&&r&&e(r).hasClass("fade"),a=function(){return o._transitionComplete(t,r,i)};if(r&&s){var l=c.getTransitionDurationFromElement(r);e(r).removeClass("show").one(c.TRANSITION_END,a).emulateTransitionEnd(l)}else a()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),c.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var r=e(t).closest(".dropdown")[0];if(r){var s=[].slice.call(r.querySelectorAll(".dropdown-toggle"));e(s).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if(void 0===o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.0"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ut._jQueryInterface.call(e(this),"show")})),e.fn.tab=ut._jQueryInterface,e.fn.tab.Constructor=ut,e.fn.tab.noConflict=function(){return e.fn.tab=ct,ut._jQueryInterface};var ht=e.fn.toast,ft={animation:"boolean",autohide:"boolean",delay:"number"},dt={animation:!0,autohide:!0,delay:500},pt=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),c.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=c.getTransitionDurationFromElement(this._element);e(this._element).one(c.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=a(a(a({},dt),e(this._element).data()),"object"==typeof t&&t?t:{}),c.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=c.getTransitionDurationFromElement(this._element);e(this._element).one(c.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if(void 0===o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"DefaultType",get:function(){return ft}},{key:"Default",get:function(){return dt}}]),t}();e.fn.toast=pt._jQueryInterface,e.fn.toast.Constructor=pt,e.fn.toast.noConflict=function(){return e.fn.toast=ht,pt._jQueryInterface},t.Alert=f,t.Button=p,t.Carousel=w,t.Collapse=D,t.Dropdown=x,t.Modal=F,t.Popover=it,t.Scrollspy=lt,t.Tab=ut,t.Toast=pt,t.Tooltip=$,t.Util=c,Object.defineProperty(t,"__esModule",{value:!0})}(e,n(0),n(1))},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";n.r(e);n(0),n(3),n.p;$(document).ready(()=>{!function(){var t=document.getElementById("bd-docs-nav");let e=parseInt(sessionStorage.getItem("sidebar-scroll-top"),10);if(isNaN(e)){var n,i=t.querySelectorAll(".active"),o=0;for(n=i.length-1;n>0;n--){var r=i[n];void 0!==r&&(o+=r.offsetTop)}o-=t.offsetTop,void 0!==r&&o>.5*t.clientHeight&&(t.scrollTop=o-.2*t.clientHeight)}else t.scrollTop=e;window.addEventListener("beforeunload",()=>{sessionStorage.setItem("sidebar-scroll-top",t.scrollTop)})}(),$(window).on("activate.bs.scrollspy",(function(){document.querySelectorAll("#bd-toc-nav a").forEach(t=>{t.parentElement.classList.remove("active")}),document.querySelectorAll("#bd-toc-nav a.active").forEach(t=>{t.parentElement.classList.add("active")})}))})}]); \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/_static/searchtools.js b/doc/LectureNotes/_build/html/_static/searchtools.js index 58ff35c43..002e9c4a2 100644 --- a/doc/LectureNotes/_build/html/_static/searchtools.js +++ b/doc/LectureNotes/_build/html/_static/searchtools.js @@ -328,7 +328,9 @@ var Search = { var results = []; for (var prefix in objects) { - for (var name in objects[prefix]) { + for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) { + var match = objects[prefix][iMatch]; + var name = match[4]; var fullname = (prefix ? prefix + '.' : '') + name; var fullnameLower = fullname.toLowerCase() if (fullnameLower.indexOf(object) > -1) { @@ -342,7 +344,6 @@ var Search = { } else if (parts[parts.length - 1].indexOf(object) > -1) { score += Scorer.objPartialMatch; } - var match = objects[prefix][name]; var objname = objnames[match[1]][2]; var title = titles[match[0]]; // If more than one term searched for, we require other words to be diff --git a/doc/LectureNotes/_build/html/_static/sphinx-book-theme.css b/doc/LectureNotes/_build/html/_static/sphinx-book-theme.css index b836961a1..13c614980 100644 --- a/doc/LectureNotes/_build/html/_static/sphinx-book-theme.css +++ b/doc/LectureNotes/_build/html/_static/sphinx-book-theme.css @@ -2,4 +2,4 @@ * BSD 3-Clause License * Copyright (c) 2020, EBP * All rights reserved. - */:root{--pst-font-size-base: none;--pst-color-primary: 87, 154, 202;--pst-color-admonition-note: var(--pst-color-primary);--pst-color-admonition-default: var(--pst-color-primary);--pst-color-info: 255, 193, 7;--pst-color-admonition-tip: var(--pst-color-info);--pst-color-admonition-hint: var(--pst-color-info);--pst-color-admonition-important: var(--pst-color-info);--pst-color-warning: 245, 162, 82;--pst-color-danger: 230, 101, 129;--pst-color-admonition-warning: var(--pst-color-danger);--pst-color-link: 0, 113, 188}body{padding-top:0px !important}body img{max-width:100%}code{font-size:87.5% !important}pre{border-radius:.4em}dt:target,span.highlighted{background-color:#fbe54e}main.bd-content{padding-top:3em !important;padding-bottom:0px !important}main.bd-content #main-content{padding-top:1.5em}main.bd-content #main-content a.headerlink{opacity:0;margin-left:.2em}main.bd-content #main-content a.headerlink:hover{background-color:transparent;color:rgba(var(--pst-color-link), 1);opacity:1 !important}main.bd-content #main-content a,main.bd-content #main-content a:visited{color:rgba(var(--pst-color-link), 1)}main.bd-content #main-content h1,main.bd-content #main-content h2,main.bd-content #main-content h3,main.bd-content #main-content h4,main.bd-content #main-content h5{color:black}main.bd-content #main-content h1:hover a.headerlink,main.bd-content #main-content h2:hover a.headerlink,main.bd-content #main-content h3:hover a.headerlink,main.bd-content #main-content h4:hover a.headerlink,main.bd-content #main-content h5:hover a.headerlink{opacity:.5}main.bd-content #main-content h1 a.toc-backref,main.bd-content #main-content h2 a.toc-backref,main.bd-content #main-content h3 a.toc-backref,main.bd-content #main-content h4 a.toc-backref,main.bd-content #main-content h5 a.toc-backref{color:inherit}main.bd-content #main-content>div>div>div.section,main.bd-content #main-content .prev-next-bottom{padding-right:1em}main.bd-content #main-content .prev-next-bottom{overflow:auto;margin-top:3em;margin-bottom:1em;padding:0}main.bd-content #main-content .prev-next-bottom .right-next,main.bd-content #main-content .prev-next-bottom .left-prev{border:none;display:flex;align-items:center}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-info,main.bd-content #main-content .prev-next-bottom .left-prev .prevnext-info{flex-direction:column}main.bd-content #main-content .prev-next-bottom .right-next p,main.bd-content #main-content .prev-next-bottom .left-prev p{margin:0;line-height:1.3em}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-label,main.bd-content #main-content .prev-next-bottom .left-prev .prevnext-label{color:#5a5a5a}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-title,main.bd-content #main-content .prev-next-bottom .left-prev .prevnext-title{font-size:1.1em;color:rgba(var(--pst-color-link), 1);font-weight:500}main.bd-content #main-content .prev-next-bottom .right-next::after,main.bd-content #main-content .prev-next-bottom .left-prev::after{content:none}main.bd-content #main-content .prev-next-bottom .left-prev i{padding-right:.75rem}main.bd-content #main-content .prev-next-bottom .left-prev::before{content:none}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-info{text-align:right}main.bd-content #main-content .prev-next-bottom .right-next i{padding-left:.75rem}main.bd-content #main-content div.section{overflow:visible !important}main.bd-content #main-content div.section ul p,main.bd-content #main-content div.section ol p{margin-bottom:0}main.bd-content #main-content span.eqno{position:absolute;right:.5em;top:50%;transform:translate(0, -50%);font-size:1.2em}main.bd-content #main-content div.math{overflow-x:auto;position:relative}main.bd-content #main-content p~div.math{margin-top:-1.15rem}main.bd-content #main-content img.align-center{margin-left:auto;margin-right:auto;display:block}main.bd-content #main-content img.align-left{clear:left;float:left;margin-right:1em}main.bd-content #main-content img.align-right{clear:right;float:right;margin-left:1em}main.bd-content #main-content div.figure{width:100%;margin-bottom:1em;text-align:center}main.bd-content #main-content div.figure.align-left{text-align:left}main.bd-content #main-content div.figure.align-left p.caption{margin-left:0}main.bd-content #main-content div.figure.align-right{text-align:right}main.bd-content #main-content div.figure.align-right p.caption{margin-right:0}main.bd-content #main-content div.figure p.caption{margin:.5em 10%}main.bd-content #main-content div.figure.margin p.caption,main.bd-content #main-content div.figure.margin-caption p.caption{margin:.5em 0}main.bd-content #main-content div.figure.margin-caption p.caption{text-align:left}main.bd-content #main-content div.figure span.caption-number{font-weight:bold}main.bd-content #main-content div.figure span{font-size:.9rem}main.bd-content #main-content div.contents{padding:1em}main.bd-content #main-content div.contents p.topic-title{font-size:1.5em;padding:.5em 0 0 1em}main.bd-content #main-content p.centered{text-align:center}main.bd-content #main-content div.sphinx-tabs>div.sphinx-menu{padding:0}main.bd-content #main-content div.sphinx-tabs>div.sphinx-menu>a.item{width:auto;margin:0px 0px -1px 0px}main.bd-content #main-content span.brackets:before,main.bd-content #main-content a.brackets:before{content:"["}main.bd-content #main-content span.brackets:after,main.bd-content #main-content a.brackets:after{content:"]"}main.bd-content #main-content .footnote-reference,main.bd-content #main-content a.bibtex.internal{font-size:1em}main.bd-content #main-content dl.simple dd,main.bd-content #main-content dl.field-list dd{margin-left:1.5em}main.bd-content #main-content dl.simple dd:not(:last-child),main.bd-content #main-content dl.field-list dd:not(:last-child){margin-bottom:0px}main.bd-content #main-content dl.simple dd:not(:last-child) p:last-child,main.bd-content #main-content dl.field-list dd:not(:last-child) p:last-child{margin-bottom:0px}main.bd-content #main-content dl.glossary dd{margin-left:1.5em}main.bd-content #main-content dl.footnote span.fn-backref{font-size:1em;padding-left:.1em}main.bd-content #main-content dl.footnote dd{font-size:.9em;margin-left:3em}main.bd-content #main-content dl.citation{margin-left:3em}main.bd-content #main-content dl.footnote dt.label{float:left}main.bd-content #main-content dl.footnote dd p{padding-left:1.5em}main.bd-content #main-content dl.module,main.bd-content #main-content dl.class,main.bd-content #main-content dl.exception,main.bd-content #main-content dl.function,main.bd-content #main-content dl.decorator,main.bd-content #main-content dl.data,main.bd-content #main-content dl.method,main.bd-content #main-content dl.attribute{margin-bottom:24px}main.bd-content #main-content dl.module dt,main.bd-content #main-content dl.class dt,main.bd-content #main-content dl.exception dt,main.bd-content #main-content dl.function dt,main.bd-content #main-content dl.decorator dt,main.bd-content #main-content dl.data dt,main.bd-content #main-content dl.method dt,main.bd-content #main-content dl.attribute dt{font-weight:bold}main.bd-content #main-content dl.module dt .headerlink,main.bd-content #main-content dl.class dt .headerlink,main.bd-content #main-content dl.exception dt .headerlink,main.bd-content #main-content dl.function dt .headerlink,main.bd-content #main-content dl.decorator dt .headerlink,main.bd-content #main-content dl.data dt .headerlink,main.bd-content #main-content dl.method dt .headerlink,main.bd-content #main-content dl.attribute dt .headerlink{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;font-family:inherit;visibility:hidden;font-size:14px}main.bd-content #main-content dl.module dt .headerlink:before,main.bd-content #main-content dl.class dt .headerlink:before,main.bd-content #main-content dl.exception dt .headerlink:before,main.bd-content #main-content dl.function dt .headerlink:before,main.bd-content #main-content dl.decorator dt .headerlink:before,main.bd-content #main-content dl.data dt .headerlink:before,main.bd-content #main-content dl.method dt .headerlink:before,main.bd-content #main-content dl.attribute dt .headerlink:before{-webkit-font-smoothing:antialiased;font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}main.bd-content #main-content dl.module dt .headerlink:after,main.bd-content #main-content dl.class dt .headerlink:after,main.bd-content #main-content dl.exception dt .headerlink:after,main.bd-content #main-content dl.function dt .headerlink:after,main.bd-content #main-content dl.decorator dt .headerlink:after,main.bd-content #main-content dl.data dt .headerlink:after,main.bd-content #main-content dl.method dt .headerlink:after,main.bd-content #main-content dl.attribute dt .headerlink:after{content:"";font-family:FontAwesome}main.bd-content #main-content dl.module dt .fa-pull-left.headerlink,main.bd-content #main-content dl.class dt .fa-pull-left.headerlink,main.bd-content #main-content dl.exception dt .fa-pull-left.headerlink,main.bd-content #main-content dl.function dt .fa-pull-left.headerlink,main.bd-content #main-content dl.decorator dt .fa-pull-left.headerlink,main.bd-content #main-content dl.data dt .fa-pull-left.headerlink,main.bd-content #main-content dl.method dt .fa-pull-left.headerlink,main.bd-content #main-content dl.attribute dt .fa-pull-left.headerlink{margin-right:.3em}main.bd-content #main-content dl.module dt .fa-pull-right.headerlink,main.bd-content #main-content dl.class dt .fa-pull-right.headerlink,main.bd-content #main-content dl.exception dt .fa-pull-right.headerlink,main.bd-content #main-content dl.function dt .fa-pull-right.headerlink,main.bd-content #main-content dl.decorator dt .fa-pull-right.headerlink,main.bd-content #main-content dl.data dt .fa-pull-right.headerlink,main.bd-content #main-content dl.method dt .fa-pull-right.headerlink,main.bd-content #main-content dl.attribute dt .fa-pull-right.headerlink{margin-left:.3em}main.bd-content #main-content dl.module dt .pull-left.headerlink,main.bd-content #main-content dl.class dt .pull-left.headerlink,main.bd-content #main-content dl.exception dt .pull-left.headerlink,main.bd-content #main-content dl.function dt .pull-left.headerlink,main.bd-content #main-content dl.decorator dt .pull-left.headerlink,main.bd-content #main-content dl.data dt .pull-left.headerlink,main.bd-content #main-content dl.method dt .pull-left.headerlink,main.bd-content #main-content dl.attribute dt .pull-left.headerlink{margin-right:.3em}main.bd-content #main-content dl.module dt .pull-right.headerlink,main.bd-content #main-content dl.class dt .pull-right.headerlink,main.bd-content #main-content dl.exception dt .pull-right.headerlink,main.bd-content #main-content dl.function dt .pull-right.headerlink,main.bd-content #main-content dl.decorator dt .pull-right.headerlink,main.bd-content #main-content dl.data dt .pull-right.headerlink,main.bd-content #main-content dl.method dt .pull-right.headerlink,main.bd-content #main-content dl.attribute dt .pull-right.headerlink{margin-left:.3em}main.bd-content #main-content dl.module dt a .headerlink,main.bd-content #main-content dl.class dt a .headerlink,main.bd-content #main-content dl.exception dt a .headerlink,main.bd-content #main-content dl.function dt a .headerlink,main.bd-content #main-content dl.decorator dt a .headerlink,main.bd-content #main-content dl.data dt a .headerlink,main.bd-content #main-content dl.method dt a .headerlink,main.bd-content #main-content dl.attribute dt a .headerlink{display:inline-block;text-decoration:inherit}main.bd-content #main-content dl.module dt .btn .headerlink,main.bd-content #main-content dl.class dt .btn .headerlink,main.bd-content #main-content dl.exception dt .btn .headerlink,main.bd-content #main-content dl.function dt .btn .headerlink,main.bd-content #main-content dl.decorator dt .btn .headerlink,main.bd-content #main-content dl.data dt .btn .headerlink,main.bd-content #main-content dl.method dt .btn .headerlink,main.bd-content #main-content dl.attribute dt .btn .headerlink{display:inline}main.bd-content #main-content dl.module dt .btn .fa-large.headerlink,main.bd-content #main-content dl.class dt .btn .fa-large.headerlink,main.bd-content #main-content dl.exception dt .btn .fa-large.headerlink,main.bd-content #main-content dl.function dt .btn .fa-large.headerlink,main.bd-content #main-content dl.decorator dt .btn .fa-large.headerlink,main.bd-content #main-content dl.data dt .btn .fa-large.headerlink,main.bd-content #main-content dl.method dt .btn .fa-large.headerlink,main.bd-content #main-content dl.attribute dt .btn .fa-large.headerlink{line-height:.9em}main.bd-content #main-content dl.module dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.class dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.exception dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.function dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.decorator dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.data dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.method dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.attribute dt .btn .fa-spin.headerlink{display:inline-block}main.bd-content #main-content dl.module dt .nav .headerlink,main.bd-content #main-content dl.class dt .nav .headerlink,main.bd-content #main-content dl.exception dt .nav .headerlink,main.bd-content #main-content dl.function dt .nav .headerlink,main.bd-content #main-content dl.decorator dt .nav .headerlink,main.bd-content #main-content dl.data dt .nav .headerlink,main.bd-content #main-content dl.method dt .nav .headerlink,main.bd-content #main-content dl.attribute dt .nav .headerlink{display:inline}main.bd-content #main-content dl.module dt .nav .fa-large.headerlink,main.bd-content #main-content dl.class dt .nav .fa-large.headerlink,main.bd-content #main-content dl.exception dt .nav .fa-large.headerlink,main.bd-content #main-content dl.function dt .nav .fa-large.headerlink,main.bd-content #main-content dl.decorator dt .nav .fa-large.headerlink,main.bd-content #main-content dl.data dt .nav .fa-large.headerlink,main.bd-content #main-content dl.method dt .nav .fa-large.headerlink,main.bd-content #main-content dl.attribute dt .nav .fa-large.headerlink{line-height:.9em}main.bd-content #main-content dl.module dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.class dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.exception dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.function dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.decorator dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.data dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.method dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.attribute dt .nav .fa-spin.headerlink{display:inline-block}main.bd-content #main-content dl.module dt .btn.headerlink:before,main.bd-content #main-content dl.class dt .btn.headerlink:before,main.bd-content #main-content dl.exception dt .btn.headerlink:before,main.bd-content #main-content dl.function dt .btn.headerlink:before,main.bd-content #main-content dl.decorator dt .btn.headerlink:before,main.bd-content #main-content dl.data dt .btn.headerlink:before,main.bd-content #main-content dl.method dt .btn.headerlink:before,main.bd-content #main-content dl.attribute dt .btn.headerlink:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}main.bd-content #main-content dl.module dt .btn.headerlink:hover:before,main.bd-content #main-content dl.class dt .btn.headerlink:hover:before,main.bd-content #main-content dl.exception dt .btn.headerlink:hover:before,main.bd-content #main-content dl.function dt .btn.headerlink:hover:before,main.bd-content #main-content dl.decorator dt .btn.headerlink:hover:before,main.bd-content #main-content dl.data dt .btn.headerlink:hover:before,main.bd-content #main-content dl.method dt .btn.headerlink:hover:before,main.bd-content #main-content dl.attribute dt .btn.headerlink:hover:before{opacity:1}main.bd-content #main-content dl.module dt .btn-mini .headerlink:before,main.bd-content #main-content dl.class dt .btn-mini .headerlink:before,main.bd-content #main-content dl.exception dt .btn-mini .headerlink:before,main.bd-content #main-content dl.function dt .btn-mini .headerlink:before,main.bd-content #main-content dl.decorator dt .btn-mini .headerlink:before,main.bd-content #main-content dl.data dt .btn-mini .headerlink:before,main.bd-content #main-content dl.method dt .btn-mini .headerlink:before,main.bd-content #main-content dl.attribute dt .btn-mini .headerlink:before{font-size:14px;vertical-align:-15%}main.bd-content #main-content dl.module dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.class dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.exception dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.function dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.decorator dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.data dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.method dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.attribute dt .rst-versions .rst-current-version .headerlink{color:#fcfcfc}main.bd-content #main-content dl.module dt:hover .headerlink:after,main.bd-content #main-content dl.class dt:hover .headerlink:after,main.bd-content #main-content dl.exception dt:hover .headerlink:after,main.bd-content #main-content dl.function dt:hover .headerlink:after,main.bd-content #main-content dl.decorator dt:hover .headerlink:after,main.bd-content #main-content dl.data dt:hover .headerlink:after,main.bd-content #main-content dl.method dt:hover .headerlink:after,main.bd-content #main-content dl.attribute dt:hover .headerlink:after{visibility:visible}main.bd-content #main-content dl.module p,main.bd-content #main-content dl.class p,main.bd-content #main-content dl.exception p,main.bd-content #main-content dl.function p,main.bd-content #main-content dl.decorator p,main.bd-content #main-content dl.data p,main.bd-content #main-content dl.method p,main.bd-content #main-content dl.attribute p{margin-bottom:12px !important}main.bd-content #main-content dl.module table,main.bd-content #main-content dl.class table,main.bd-content #main-content dl.exception table,main.bd-content #main-content dl.function table,main.bd-content #main-content dl.decorator table,main.bd-content #main-content dl.data table,main.bd-content #main-content dl.method table,main.bd-content #main-content dl.attribute table{margin-bottom:12px !important}main.bd-content #main-content dl.module ul,main.bd-content #main-content dl.class ul,main.bd-content #main-content dl.exception ul,main.bd-content #main-content dl.function ul,main.bd-content #main-content dl.decorator ul,main.bd-content #main-content dl.data ul,main.bd-content #main-content dl.method ul,main.bd-content #main-content dl.attribute ul{margin-bottom:12px !important}main.bd-content #main-content dl.module ol,main.bd-content #main-content dl.class ol,main.bd-content #main-content dl.exception ol,main.bd-content #main-content dl.function ol,main.bd-content #main-content dl.decorator ol,main.bd-content #main-content dl.data ol,main.bd-content #main-content dl.method ol,main.bd-content #main-content dl.attribute ol{margin-bottom:12px !important}main.bd-content #main-content dl.module dd,main.bd-content #main-content dl.class dd,main.bd-content #main-content dl.exception dd,main.bd-content #main-content dl.function dd,main.bd-content #main-content dl.decorator dd,main.bd-content #main-content dl.data dd,main.bd-content #main-content dl.method dd,main.bd-content #main-content dl.attribute dd{margin:0 0 12px 24px}main.bd-content #main-content dl.module:not(.docutils),main.bd-content #main-content dl.class:not(.docutils),main.bd-content #main-content dl.exception:not(.docutils),main.bd-content #main-content dl.function:not(.docutils),main.bd-content #main-content dl.decorator:not(.docutils),main.bd-content #main-content dl.data:not(.docutils),main.bd-content #main-content dl.method:not(.docutils),main.bd-content #main-content dl.attribute:not(.docutils){margin-bottom:24px}main.bd-content #main-content dl.module:not(.docutils) dt,main.bd-content #main-content dl.class:not(.docutils) dt,main.bd-content #main-content dl.exception:not(.docutils) dt,main.bd-content #main-content dl.function:not(.docutils) dt,main.bd-content #main-content dl.decorator:not(.docutils) dt,main.bd-content #main-content dl.data:not(.docutils) dt,main.bd-content #main-content dl.method:not(.docutils) dt,main.bd-content #main-content dl.attribute:not(.docutils) dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980B9;border-top:solid 3px #6ab0de;padding:6px;position:relative}main.bd-content #main-content dl.module:not(.docutils) dt:before,main.bd-content #main-content dl.class:not(.docutils) dt:before,main.bd-content #main-content dl.exception:not(.docutils) dt:before,main.bd-content #main-content dl.function:not(.docutils) dt:before,main.bd-content #main-content dl.decorator:not(.docutils) dt:before,main.bd-content #main-content dl.data:not(.docutils) dt:before,main.bd-content #main-content dl.method:not(.docutils) dt:before,main.bd-content #main-content dl.attribute:not(.docutils) dt:before{color:#6ab0de}main.bd-content #main-content dl.module:not(.docutils) dt .headerlink,main.bd-content #main-content dl.class:not(.docutils) dt .headerlink,main.bd-content #main-content dl.exception:not(.docutils) dt .headerlink,main.bd-content #main-content dl.function:not(.docutils) dt .headerlink,main.bd-content #main-content dl.decorator:not(.docutils) dt .headerlink,main.bd-content #main-content dl.data:not(.docutils) dt .headerlink,main.bd-content #main-content dl.method:not(.docutils) dt .headerlink,main.bd-content #main-content dl.attribute:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) dt:first-child,main.bd-content #main-content dl.class:not(.docutils) dt:first-child,main.bd-content #main-content dl.exception:not(.docutils) dt:first-child,main.bd-content #main-content dl.function:not(.docutils) dt:first-child,main.bd-content #main-content dl.decorator:not(.docutils) dt:first-child,main.bd-content #main-content dl.data:not(.docutils) dt:first-child,main.bd-content #main-content dl.method:not(.docutils) dt:first-child,main.bd-content #main-content dl.attribute:not(.docutils) dt:first-child{margin-top:0}main.bd-content #main-content dl.module:not(.docutils) dl dt,main.bd-content #main-content dl.class:not(.docutils) dl dt,main.bd-content #main-content dl.exception:not(.docutils) dl dt,main.bd-content #main-content dl.function:not(.docutils) dl dt,main.bd-content #main-content dl.decorator:not(.docutils) dl dt,main.bd-content #main-content dl.data:not(.docutils) dl dt,main.bd-content #main-content dl.method:not(.docutils) dl dt,main.bd-content #main-content dl.attribute:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:#555}main.bd-content #main-content dl.module:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.class:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.exception:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.function:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.decorator:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.data:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.method:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.attribute:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) tt,main.bd-content #main-content dl.class:not(.docutils) tt,main.bd-content #main-content dl.exception:not(.docutils) tt,main.bd-content #main-content dl.function:not(.docutils) tt,main.bd-content #main-content dl.decorator:not(.docutils) tt,main.bd-content #main-content dl.data:not(.docutils) tt,main.bd-content #main-content dl.method:not(.docutils) tt,main.bd-content #main-content dl.attribute:not(.docutils) tt{font-weight:bold;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) code,main.bd-content #main-content dl.class:not(.docutils) code,main.bd-content #main-content dl.exception:not(.docutils) code,main.bd-content #main-content dl.function:not(.docutils) code,main.bd-content #main-content dl.decorator:not(.docutils) code,main.bd-content #main-content dl.data:not(.docutils) code,main.bd-content #main-content dl.method:not(.docutils) code,main.bd-content #main-content dl.attribute:not(.docutils) code{font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) tt.descname,main.bd-content #main-content dl.class:not(.docutils) tt.descname,main.bd-content #main-content dl.exception:not(.docutils) tt.descname,main.bd-content #main-content dl.function:not(.docutils) tt.descname,main.bd-content #main-content dl.decorator:not(.docutils) tt.descname,main.bd-content #main-content dl.data:not(.docutils) tt.descname,main.bd-content #main-content dl.method:not(.docutils) tt.descname,main.bd-content #main-content dl.attribute:not(.docutils) tt.descname{background-color:transparent;background-color:transparent;border:none;border:none;padding:0;padding:0;font-size:100% !important;font-size:100% !important;font-weight:bold;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) tt.descclassname,main.bd-content #main-content dl.class:not(.docutils) tt.descclassname,main.bd-content #main-content dl.exception:not(.docutils) tt.descclassname,main.bd-content #main-content dl.function:not(.docutils) tt.descclassname,main.bd-content #main-content dl.decorator:not(.docutils) tt.descclassname,main.bd-content #main-content dl.data:not(.docutils) tt.descclassname,main.bd-content #main-content dl.method:not(.docutils) tt.descclassname,main.bd-content #main-content dl.attribute:not(.docutils) tt.descclassname{background-color:transparent;background-color:transparent;border:none;border:none;padding:0;padding:0;font-size:100% !important;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) code.descname,main.bd-content #main-content dl.class:not(.docutils) code.descname,main.bd-content #main-content dl.exception:not(.docutils) code.descname,main.bd-content #main-content dl.function:not(.docutils) code.descname,main.bd-content #main-content dl.decorator:not(.docutils) code.descname,main.bd-content #main-content dl.data:not(.docutils) code.descname,main.bd-content #main-content dl.method:not(.docutils) code.descname,main.bd-content #main-content dl.attribute:not(.docutils) code.descname{background-color:transparent;border:none;padding:0;font-size:100% !important;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) code.descclassname,main.bd-content #main-content dl.class:not(.docutils) code.descclassname,main.bd-content #main-content dl.exception:not(.docutils) code.descclassname,main.bd-content #main-content dl.function:not(.docutils) code.descclassname,main.bd-content #main-content dl.decorator:not(.docutils) code.descclassname,main.bd-content #main-content dl.data:not(.docutils) code.descclassname,main.bd-content #main-content dl.method:not(.docutils) code.descclassname,main.bd-content #main-content dl.attribute:not(.docutils) code.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) .optional,main.bd-content #main-content dl.class:not(.docutils) .optional,main.bd-content #main-content dl.exception:not(.docutils) .optional,main.bd-content #main-content dl.function:not(.docutils) .optional,main.bd-content #main-content dl.decorator:not(.docutils) .optional,main.bd-content #main-content dl.data:not(.docutils) .optional,main.bd-content #main-content dl.method:not(.docutils) .optional,main.bd-content #main-content dl.attribute:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) .property,main.bd-content #main-content dl.class:not(.docutils) .property,main.bd-content #main-content dl.exception:not(.docutils) .property,main.bd-content #main-content dl.function:not(.docutils) .property,main.bd-content #main-content dl.decorator:not(.docutils) .property,main.bd-content #main-content dl.data:not(.docutils) .property,main.bd-content #main-content dl.method:not(.docutils) .property,main.bd-content #main-content dl.attribute:not(.docutils) .property{display:inline-block;padding-right:8px}main.bd-content #main-content dl.module .viewcode-link,main.bd-content #main-content dl.class .viewcode-link,main.bd-content #main-content dl.exception .viewcode-link,main.bd-content #main-content dl.function .viewcode-link,main.bd-content #main-content dl.decorator .viewcode-link,main.bd-content #main-content dl.data .viewcode-link,main.bd-content #main-content dl.method .viewcode-link,main.bd-content #main-content dl.attribute .viewcode-link{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}div.cell div.cell_output{padding-right:0}div.cell.tag_output_scroll div.cell_output,div.cell.tag_scroll-output div.cell_output{max-height:24em;overflow-y:auto}div.cell.tag_scroll-input div.cell_input{max-height:24em;overflow-y:auto}.highlighttable .linenos{vertical-align:baseline}.toggle.admonition button.toggle-button{top:0.5em !important}.admonition{border-radius:.4em;box-shadow:0 0.2rem 0.5rem rgba(0,0,0,0.05),0 0 0.0625rem rgba(0,0,0,0.1)}.admonition.seealso{border-color:#28a745}.admonition.seealso .admonition-title{background-color:rgba(40,167,70,0.1)}.admonition.seealso .admonition-title:before{color:#28a745;content:"\f064"}button.toggle-button-hidden:before{bottom:0.2em !important}div.sidebar,div.margin,div.margin-caption p.caption,.cell.tag_popout,.cell.tag_margin{width:40%;float:right;border-left:1px #a4a6a7 solid;margin-left:0.5em;padding:.2em 0 .2em 1em}div.sidebar p,div.margin p,div.margin-caption p.caption p,.cell.tag_popout p,.cell.tag_margin p{margin-bottom:0}div.sidebar p.sidebar-title,div.margin p.sidebar-title,div.margin-caption p.caption p.sidebar-title,.cell.tag_popout p.sidebar-title,.cell.tag_margin p.sidebar-title{font-weight:bold;font-size:1.2em}@media (min-width: 768px){div.cell.tag_popout,div.cell.tag_margin,div.margin,div.margin-caption p.caption{border:none;clear:right;width:31% !important;margin:0 -35% 0 0 !important;padding:0 !important;font-size:0.9rem;line-height:1.3;vertical-align:baseline;position:relative}div.cell.tag_popout p,div.cell.tag_margin p,div.margin p,div.margin-caption p.caption p{margin-bottom:.5em}div.cell.tag_popout p.sidebar-title,div.cell.tag_margin p.sidebar-title,div.margin p.sidebar-title,div.margin-caption p.caption p.sidebar-title{font-size:1em}div.cell.tag_margin .cell_output{padding-left:0}div.sidebar:not(.margin){width:60%;margin-left:1.5em;margin-right:-28%}}@media (min-width: 768px){div.cell.tag_full-width,div.cell.tag_full_width,div.full_width,div.full-width{width:134% !important}}blockquote{margin:1em;padding:.2em 1.5em;border-left:4px solid #ccc}blockquote.pull-quote,blockquote.epigraph,blockquote.highlights{font-size:1.25em;border-left:none}blockquote div>p{margin-bottom:.5em}blockquote div>p+p.attribution{font-style:normal;font-size:.9em;text-align:right;color:#6c757d;padding-right:2em}div.highlight{background:none;margin-bottom:1em}div.cell div.highlight{margin-bottom:0em}.thebelab-cell{border:none !important;margin-right:.5em !important}.thebelab-cell .thebelab-input{padding-left:10px !important}.cell.docutils.container{padding-right:0px !important}button.thebe-launch-button{height:2.5em;font-size:1em}div.tableofcontents-wrapper p.caption{font-weight:600 !important;margin-bottom:0em !important}.cm-s-default{font-family:var(--jp-code-font-family);font-size:var(--jp-code-font-size);line-height:var(--jp-code-line-height)}.CodeMirror-focused{background-color:var(--jp-cell-editor-active-background) !important;border:var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);margin:-1px}.topbar,.topbar-contents,.topbar-main{height:3em}.topbar{background-color:white;transition:left .2s}.scrolled .topbar{box-shadow:0 6px 6px -6px rgba(0,0,0,0.3)}.topbar .topbar-main{padding-top:0.25rem;padding-bottom:0.25rem;padding-right:0}.topbar .topbar-main>button,.topbar .topbar-main>div,.topbar .topbar-main>a{float:left;height:100%}.topbar .topbar-main button.topbarbtn{margin:0 .1em;background-color:white;color:#5a5a5a;border:none;padding-top:.1rem;padding-bottom:.1rem;font-size:1.4em}.topbar .topbar-main button.topbarbtn i.fab{vertical-align:baseline;line-height:1}.topbar .topbar-main div.dropdown-buttons-trigger,.topbar .topbar-main a.edit-button,.topbar .topbar-main a.full-screen-button{float:right}.bd-topbar-whitespace{width:275px;flex:auto;transition:flex 0.2s ease 0s}@media (max-width: 768px){.bd-topbar-whitespace{border-bottom:1px solid transparent}.bd-topbar-whitespace.show,.bd-topbar-whitespace.collapsing,body.scrolled .bd-topbar-whitespace{border-color:rgba(0,0,0,0.1);position:absolute;bottom:0;width:100%;display:block}}span.topbar-button-text{margin-left:0.4em}@media (max-width: 768px){span.topbar-button-text{display:none}}div.dropdown-buttons-trigger div.dropdown-buttons{display:none;position:absolute;max-width:130px;margin-top:.2em;z-index:1000;transform:translate(-60%)}div.dropdown-buttons-trigger div.dropdown-buttons.sourcebuttons .topbarbtn i{padding-right:6px;margin-left:-5px;font-size:.9em !important}div.dropdown-buttons-trigger div.dropdown-buttons button.topbarbtn{padding-top:.35rem;padding-bottom:.35rem;min-width:120px !important;border:1px white solid !important;background-color:#5a5a5a;color:white;font-size:1em}div.dropdown-buttons-trigger:hover div.dropdown-buttons{display:block}a.dropdown-buttons i{margin-right:.5em}button.topbarbtn img{height:1.15em;padding-right:6px;margin-left:-5px}#navbar-toggler{position:relative;margin-right:1em;margin-left:.5em;color:#5a5a5a}#navbar-toggler i{transition:opacity .3s, transform .3s;position:absolute;top:16%;left:0;display:block;font-size:1.2em}#navbar-toggler i.fa-bars{opacity:0;transform:rotate(180deg) scale(0.5)}#navbar-toggler i.fa-arrow-left,#navbar-toggler i.fa-arrow-up{opacity:1}#navbar-toggler.collapsed i.fa-bars{opacity:1;transform:rotate(0) scale(1)}#navbar-toggler.collapsed i.fa-arrow-left,#navbar-toggler.collapsed i.fa-arrow-up{opacity:0;transform:rotate(-180deg) scale(0.5)}@media (max-width: 768px){#navbar-toggler i.fa-arrow-up{display:none}}@media (min-width: 768px){#navbar-toggler i.fa-arrow-up{display:none}#navbar-toggler i.fa-arrow-left{display:inherit}}@media (min-width: 768px){.bd-topbar-whitespace{max-width:275px}}.bd-toc{padding:0px !important;right:-1em;z-index:999;height:auto}.bd-toc div.onthispage,.bd-toc .toc-entry a{color:#5a5a5a}.bd-toc nav{opacity:0;max-height:0;transition:opacity 0.2s ease, max-height .7s ease;overflow-y:hidden;background:white;scrollbar-width:thin}.bd-toc nav::-webkit-scrollbar{width:5px}.bd-toc nav::-webkit-scrollbar{background:#f1f1f1}.bd-toc nav::-webkit-scrollbar-thumb{background:#c1c1c1}.bd-toc nav::-webkit-scrollbar-thumb:hover{background:#a0a0a0}@media (min-width: 992px){.bd-toc nav:not(:hover){-ms-overflow-style:none}.bd-toc nav:not(:hover)::-webkit-scrollbar{background:#FFFFFF}.bd-toc nav:not(:hover)::-webkit-scrollbar-thumb{background:#FFFFFF}}.bd-toc nav a:hover,.bd-toc nav li.active>a.active{color:rgba(var(--pst-color-link), 1)}.bd-toc nav li.active>a.active{border-left:2px solid rgba(var(--pst-color-link), 1)}.bd-toc nav>.nav{border-left:1px solid #eee}.bd-toc nav>.nav .nav{border-left:none}.bd-toc:hover nav,.bd-toc.show nav{max-height:90vh;opacity:1;overflow-y:auto}.bd-toc:hover .tocsection:after,.bd-toc.show .tocsection:after{opacity:0}.bd-toc .tocsection{padding:.5rem 0 .5rem 1rem !important}.bd-toc .tocsection:after{content:"\f107";font-family:"Font Awesome 5 Free";font-weight:900;padding-left:.5em;transition:opacity .3s ease}.bd-toc .toc-entry a{padding:.125rem 1rem !important}.bd-toc div.editthispage{display:none}#site-navigation{height:100vh !important;width:275px;flex:auto;top:0px !important;margin-left:0;overflow-y:auto;background:white;transition:margin-left .2s ease 0s, opacity .2s ease 0s, visibility .2s ease 0s;z-index:2000 !important;scrollbar-width:thin}#site-navigation.collapse{visibility:hidden;margin-left:-275px;opacity:0;display:block}#site-navigation.collapse.show{visibility:visible;margin-left:0;opacity:1}#site-navigation::-webkit-scrollbar{width:5px}#site-navigation::-webkit-scrollbar{background:#f1f1f1}#site-navigation::-webkit-scrollbar-thumb{background:#c1c1c1}#site-navigation::-webkit-scrollbar-thumb:hover{background:#a0a0a0}@media (min-width: 992px){#site-navigation:not(:hover){-ms-overflow-style:none}#site-navigation:not(:hover)::-webkit-scrollbar{background:#FFFFFF}#site-navigation:not(:hover)::-webkit-scrollbar-thumb{background:#FFFFFF}}@media (max-width: 768px){#site-navigation{position:fixed;margin-top:3em;border-right:1px solid rgba(0,0,0,0.1)}#site-navigation.single-page{display:none}}#site-navigation nav ul.nav li a,#site-navigation nav ul.nav ul li a{color:#5a5a5a}#site-navigation nav ul.nav a:hover,#site-navigation nav ul.nav li.active>a,#site-navigation nav ul.nav li.active>a:hover{color:rgba(var(--pst-color-link), 1)}#site-navigation h1.site-logo{margin:.5em 0 0 0;font-size:1.1em;color:black;text-align:center}#site-navigation div.navbar_extra_footer{text-align:center;font-size:.9em;color:#5a5a5a;margin-bottom:3em}#site-navigation.single-page{border-right:0}@media (min-width: 768px){div.navbar-brand-box{padding-top:2em}}div.navbar-brand-box a.navbar-brand{width:100%;height:auto}div.navbar-brand-box a.navbar-brand img{display:block;height:auto;width:auto;max-height:10vh;max-width:100%;margin:0 auto}@media (min-width: 768px){div.navbar-brand-box a.navbar-brand img{max-height:15vh !important}}nav.bd-links{margin-left:0px;overflow-y:visible;max-height:none}nav.bd-links p.caption,nav.bd-links .toctree-l1 a{padding-left:0em}@media (min-width: 768px){.bd-sidebar{max-width:275px}}footer{padding-left:0}footer>div.container{padding-left:0}ul.ablog-archive{padding-left:0px}ul.postlist{padding-left:0}ul.postlist>li>p:first-child{font-size:1.5em}ul.postlist li+li{margin-top:2em}ul.postlist li>p>a{font-style:normal;font-size:1.3em}div.bd-sidebar h2{font-size:1.5em}div.bd-sidebar h3{font-size:1.4em}div.bd-sidebar>ul{list-style:none;padding-left:0}@media print{.tag_popout,div.margin{float:right;clear:right;width:50%;margin-right:-56%;margin-top:0;margin-bottom:0;padding-right:1em;font-size:0.9rem;line-height:1.3;vertical-align:baseline;position:relative;border-left:none;padding-left:0}.bd-content div#main-content>div{flex:0 0 75%;max-width:75%}h1,h2,h3,h4{break-after:avoid}table{break-inside:avoid}pre{word-wrap:break-word}a.copybtn,a.headerlink{display:none}.tag-fullwidth{width:145%;clear:both}div.toggle-hidden{visibility:inherit;opacity:1;height:auto}button.toggle-button{display:none}blockquote.epigraph{border:none}div.container{min-width:50% !important}div.bd-sidebar,div.prev-next-bottom{display:none}div.topbar{height:0;padding:0;position:inherit}div.topbar div.topbar-main{opacity:0}div.topbar div.bd-toc{flex:0 0 25%;max-width:25%;height:auto !important}div.topbar div.bd-toc nav,div.topbar div.bd-toc nav>ul.nav,div.topbar div.bd-toc nav>ul.nav>li>ul.nav{opacity:1;display:block}div.topbar div.bd-toc .nav-link.active{font-weight:inherit;color:inherit;background-color:inherit;border-left:inherit}} + */:root{--pst-font-size-base: none;--pst-color-primary: 87, 154, 202;--pst-color-admonition-note: var(--pst-color-primary);--pst-color-admonition-default: var(--pst-color-primary);--pst-color-info: 255, 193, 7;--pst-color-admonition-tip: var(--pst-color-info);--pst-color-admonition-hint: var(--pst-color-info);--pst-color-admonition-important: var(--pst-color-info);--pst-color-warning: 245, 162, 82;--pst-color-danger: 230, 101, 129;--pst-color-admonition-warning: var(--pst-color-danger);--pst-color-link: 0, 113, 188}body{padding-top:0px !important}body img{max-width:100%}code{font-size:87.5% !important}pre{border-radius:.4em}pre,div[class*="highlight-"]{clear:none}dt:target,span.highlighted{background-color:#fbe54e}.onlyprint{display:none}main.bd-content{padding-top:3em !important;padding-bottom:0px !important}main.bd-content #main-content,main.bd-content #print-main-content{padding-top:1.5em}main.bd-content #main-content a.headerlink,main.bd-content #print-main-content a.headerlink{opacity:0;margin-left:.2em}main.bd-content #main-content a.headerlink:hover,main.bd-content #print-main-content a.headerlink:hover{background-color:transparent;color:rgba(var(--pst-color-link), 1);opacity:1 !important}main.bd-content #main-content a,main.bd-content #main-content a:visited,main.bd-content #print-main-content a,main.bd-content #print-main-content a:visited{color:rgba(var(--pst-color-link), 1)}main.bd-content #main-content h1,main.bd-content #main-content h2,main.bd-content #main-content h3,main.bd-content #main-content h4,main.bd-content #main-content h5,main.bd-content #print-main-content h1,main.bd-content #print-main-content h2,main.bd-content #print-main-content h3,main.bd-content #print-main-content h4,main.bd-content #print-main-content h5{color:black}main.bd-content #main-content h1:hover a.headerlink,main.bd-content #main-content h2:hover a.headerlink,main.bd-content #main-content h3:hover a.headerlink,main.bd-content #main-content h4:hover a.headerlink,main.bd-content #main-content h5:hover a.headerlink,main.bd-content #print-main-content h1:hover a.headerlink,main.bd-content #print-main-content h2:hover a.headerlink,main.bd-content #print-main-content h3:hover a.headerlink,main.bd-content #print-main-content h4:hover a.headerlink,main.bd-content #print-main-content h5:hover a.headerlink{opacity:.5}main.bd-content #main-content h1 a.toc-backref,main.bd-content #main-content h2 a.toc-backref,main.bd-content #main-content h3 a.toc-backref,main.bd-content #main-content h4 a.toc-backref,main.bd-content #main-content h5 a.toc-backref,main.bd-content #print-main-content h1 a.toc-backref,main.bd-content #print-main-content h2 a.toc-backref,main.bd-content #print-main-content h3 a.toc-backref,main.bd-content #print-main-content h4 a.toc-backref,main.bd-content #print-main-content h5 a.toc-backref{color:inherit}main.bd-content #main-content>div>div>div.section,main.bd-content #main-content .prev-next-bottom,main.bd-content #print-main-content>div>div>div.section,main.bd-content #print-main-content .prev-next-bottom{padding-right:1em}main.bd-content #main-content .prev-next-bottom,main.bd-content #print-main-content .prev-next-bottom{overflow:auto;margin-top:3em;margin-bottom:1em;padding:0}main.bd-content #main-content .prev-next-bottom .right-next,main.bd-content #main-content .prev-next-bottom .left-prev,main.bd-content #print-main-content .prev-next-bottom .right-next,main.bd-content #print-main-content .prev-next-bottom .left-prev{border:none;display:flex;align-items:center}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-info,main.bd-content #main-content .prev-next-bottom .left-prev .prevnext-info,main.bd-content #print-main-content .prev-next-bottom .right-next .prevnext-info,main.bd-content #print-main-content .prev-next-bottom .left-prev .prevnext-info{flex-direction:column}main.bd-content #main-content .prev-next-bottom .right-next p,main.bd-content #main-content .prev-next-bottom .left-prev p,main.bd-content #print-main-content .prev-next-bottom .right-next p,main.bd-content #print-main-content .prev-next-bottom .left-prev p{margin:0;line-height:1.3em}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-label,main.bd-content #main-content .prev-next-bottom .left-prev .prevnext-label,main.bd-content #print-main-content .prev-next-bottom .right-next .prevnext-label,main.bd-content #print-main-content .prev-next-bottom .left-prev .prevnext-label{color:#5a5a5a}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-title,main.bd-content #main-content .prev-next-bottom .left-prev .prevnext-title,main.bd-content #print-main-content .prev-next-bottom .right-next .prevnext-title,main.bd-content #print-main-content .prev-next-bottom .left-prev .prevnext-title{font-size:1.1em;color:rgba(var(--pst-color-link), 1);font-weight:500}main.bd-content #main-content .prev-next-bottom .right-next::after,main.bd-content #main-content .prev-next-bottom .left-prev::after,main.bd-content #print-main-content .prev-next-bottom .right-next::after,main.bd-content #print-main-content .prev-next-bottom .left-prev::after{content:none}main.bd-content #main-content .prev-next-bottom .left-prev i,main.bd-content #print-main-content .prev-next-bottom .left-prev i{padding-right:.75rem}main.bd-content #main-content .prev-next-bottom .left-prev::before,main.bd-content #print-main-content .prev-next-bottom .left-prev::before{content:none}main.bd-content #main-content .prev-next-bottom .right-next .prevnext-info,main.bd-content #print-main-content .prev-next-bottom .right-next .prevnext-info{text-align:right}main.bd-content #main-content .prev-next-bottom .right-next i,main.bd-content #print-main-content .prev-next-bottom .right-next i{padding-left:.75rem}main.bd-content #main-content div.section,main.bd-content #print-main-content div.section{overflow:visible !important}main.bd-content #main-content div.section ul p,main.bd-content #main-content div.section ol p,main.bd-content #print-main-content div.section ul p,main.bd-content #print-main-content div.section ol p{margin-bottom:0}main.bd-content #main-content span.eqno,main.bd-content #print-main-content span.eqno{position:absolute;right:1em;top:50%;transform:translate(0, -50%);font-size:1.2em}main.bd-content #main-content div.math,main.bd-content #print-main-content div.math{overflow-x:auto;position:relative}main.bd-content #main-content p~div.math,main.bd-content #print-main-content p~div.math{margin-top:-1.15rem}main.bd-content #main-content img.align-center,main.bd-content #print-main-content img.align-center{margin-left:auto;margin-right:auto;display:block}main.bd-content #main-content img.align-left,main.bd-content #print-main-content img.align-left{clear:left;float:left;margin-right:1em}main.bd-content #main-content img.align-right,main.bd-content #print-main-content img.align-right{clear:right;float:right;margin-left:1em}main.bd-content #main-content div.figure,main.bd-content #print-main-content div.figure{width:100%;margin-bottom:1em;text-align:center}main.bd-content #main-content div.figure.align-left,main.bd-content #print-main-content div.figure.align-left{text-align:left}main.bd-content #main-content div.figure.align-left p.caption,main.bd-content #print-main-content div.figure.align-left p.caption{margin-left:0}main.bd-content #main-content div.figure.align-right,main.bd-content #print-main-content div.figure.align-right{text-align:right}main.bd-content #main-content div.figure.align-right p.caption,main.bd-content #print-main-content div.figure.align-right p.caption{margin-right:0}main.bd-content #main-content div.figure p.caption,main.bd-content #print-main-content div.figure p.caption{margin:.5em 10%}main.bd-content #main-content div.figure.margin p.caption,main.bd-content #main-content div.figure.margin-caption p.caption,main.bd-content #print-main-content div.figure.margin p.caption,main.bd-content #print-main-content div.figure.margin-caption p.caption{margin:.5em 0}main.bd-content #main-content div.figure.margin-caption p.caption,main.bd-content #print-main-content div.figure.margin-caption p.caption{text-align:left}main.bd-content #main-content div.figure span.caption-number,main.bd-content #print-main-content div.figure span.caption-number{font-weight:bold}main.bd-content #main-content div.figure span,main.bd-content #print-main-content div.figure span{font-size:.9rem}main.bd-content #main-content div.contents,main.bd-content #print-main-content div.contents{padding:1em}main.bd-content #main-content div.contents p.topic-title,main.bd-content #print-main-content div.contents p.topic-title{font-size:1.5em;padding:.5em 0 0 1em}main.bd-content #main-content p.centered,main.bd-content #print-main-content p.centered{text-align:center}main.bd-content #main-content div.sphinx-tabs>div.sphinx-menu,main.bd-content #print-main-content div.sphinx-tabs>div.sphinx-menu{padding:0}main.bd-content #main-content div.sphinx-tabs>div.sphinx-menu>a.item,main.bd-content #print-main-content div.sphinx-tabs>div.sphinx-menu>a.item{width:auto;margin:0px 0px -1px 0px}main.bd-content #main-content .footnote-reference,main.bd-content #main-content a.bibtex.internal,main.bd-content #print-main-content .footnote-reference,main.bd-content #print-main-content a.bibtex.internal{font-size:1em}main.bd-content #main-content dl.simple dd,main.bd-content #main-content dl.field-list dd,main.bd-content #print-main-content dl.simple dd,main.bd-content #print-main-content dl.field-list dd{margin-left:1.5em}main.bd-content #main-content dl.simple dd:not(:last-child),main.bd-content #main-content dl.field-list dd:not(:last-child),main.bd-content #print-main-content dl.simple dd:not(:last-child),main.bd-content #print-main-content dl.field-list dd:not(:last-child){margin-bottom:0px}main.bd-content #main-content dl.simple dd:not(:last-child) p:last-child,main.bd-content #main-content dl.field-list dd:not(:last-child) p:last-child,main.bd-content #print-main-content dl.simple dd:not(:last-child) p:last-child,main.bd-content #print-main-content dl.field-list dd:not(:last-child) p:last-child{margin-bottom:0px}main.bd-content #main-content dl.glossary dd,main.bd-content #print-main-content dl.glossary dd{margin-left:1.5em}main.bd-content #main-content dl.footnote span.fn-backref,main.bd-content #print-main-content dl.footnote span.fn-backref{font-size:1em;padding-left:.1em}main.bd-content #main-content dl.footnote dd,main.bd-content #print-main-content dl.footnote dd{font-size:.9em;margin-left:3em}main.bd-content #main-content dl.module,main.bd-content #main-content dl.class,main.bd-content #main-content dl.exception,main.bd-content #main-content dl.function,main.bd-content #main-content dl.decorator,main.bd-content #main-content dl.data,main.bd-content #main-content dl.method,main.bd-content #main-content dl.attribute,main.bd-content #print-main-content dl.module,main.bd-content #print-main-content dl.class,main.bd-content #print-main-content dl.exception,main.bd-content #print-main-content dl.function,main.bd-content #print-main-content dl.decorator,main.bd-content #print-main-content dl.data,main.bd-content #print-main-content dl.method,main.bd-content #print-main-content dl.attribute{margin-bottom:24px}main.bd-content #main-content dl.module dt,main.bd-content #main-content dl.class dt,main.bd-content #main-content dl.exception dt,main.bd-content #main-content dl.function dt,main.bd-content #main-content dl.decorator dt,main.bd-content #main-content dl.data dt,main.bd-content #main-content dl.method dt,main.bd-content #main-content dl.attribute dt,main.bd-content #print-main-content dl.module dt,main.bd-content #print-main-content dl.class dt,main.bd-content #print-main-content dl.exception dt,main.bd-content #print-main-content dl.function dt,main.bd-content #print-main-content dl.decorator dt,main.bd-content #print-main-content dl.data dt,main.bd-content #print-main-content dl.method dt,main.bd-content #print-main-content dl.attribute dt{font-weight:bold}main.bd-content #main-content dl.module dt .headerlink,main.bd-content #main-content dl.class dt .headerlink,main.bd-content #main-content dl.exception dt .headerlink,main.bd-content #main-content dl.function dt .headerlink,main.bd-content #main-content dl.decorator dt .headerlink,main.bd-content #main-content dl.data dt .headerlink,main.bd-content #main-content dl.method dt .headerlink,main.bd-content #main-content dl.attribute dt .headerlink,main.bd-content #print-main-content dl.module dt .headerlink,main.bd-content #print-main-content dl.class dt .headerlink,main.bd-content #print-main-content dl.exception dt .headerlink,main.bd-content #print-main-content dl.function dt .headerlink,main.bd-content #print-main-content dl.decorator dt .headerlink,main.bd-content #print-main-content dl.data dt .headerlink,main.bd-content #print-main-content dl.method dt .headerlink,main.bd-content #print-main-content dl.attribute dt .headerlink{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;font-family:inherit;visibility:hidden;font-size:14px}main.bd-content #main-content dl.module dt .headerlink:before,main.bd-content #main-content dl.class dt .headerlink:before,main.bd-content #main-content dl.exception dt .headerlink:before,main.bd-content #main-content dl.function dt .headerlink:before,main.bd-content #main-content dl.decorator dt .headerlink:before,main.bd-content #main-content dl.data dt .headerlink:before,main.bd-content #main-content dl.method dt .headerlink:before,main.bd-content #main-content dl.attribute dt .headerlink:before,main.bd-content #print-main-content dl.module dt .headerlink:before,main.bd-content #print-main-content dl.class dt .headerlink:before,main.bd-content #print-main-content dl.exception dt .headerlink:before,main.bd-content #print-main-content dl.function dt .headerlink:before,main.bd-content #print-main-content dl.decorator dt .headerlink:before,main.bd-content #print-main-content dl.data dt .headerlink:before,main.bd-content #print-main-content dl.method dt .headerlink:before,main.bd-content #print-main-content dl.attribute dt .headerlink:before{-webkit-font-smoothing:antialiased;font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}main.bd-content #main-content dl.module dt .headerlink:after,main.bd-content #main-content dl.class dt .headerlink:after,main.bd-content #main-content dl.exception dt .headerlink:after,main.bd-content #main-content dl.function dt .headerlink:after,main.bd-content #main-content dl.decorator dt .headerlink:after,main.bd-content #main-content dl.data dt .headerlink:after,main.bd-content #main-content dl.method dt .headerlink:after,main.bd-content #main-content dl.attribute dt .headerlink:after,main.bd-content #print-main-content dl.module dt .headerlink:after,main.bd-content #print-main-content dl.class dt .headerlink:after,main.bd-content #print-main-content dl.exception dt .headerlink:after,main.bd-content #print-main-content dl.function dt .headerlink:after,main.bd-content #print-main-content dl.decorator dt .headerlink:after,main.bd-content #print-main-content dl.data dt .headerlink:after,main.bd-content #print-main-content dl.method dt .headerlink:after,main.bd-content #print-main-content dl.attribute dt .headerlink:after{content:"";font-family:FontAwesome}main.bd-content #main-content dl.module dt .fa-pull-left.headerlink,main.bd-content #main-content dl.class dt .fa-pull-left.headerlink,main.bd-content #main-content dl.exception dt .fa-pull-left.headerlink,main.bd-content #main-content dl.function dt .fa-pull-left.headerlink,main.bd-content #main-content dl.decorator dt .fa-pull-left.headerlink,main.bd-content #main-content dl.data dt .fa-pull-left.headerlink,main.bd-content #main-content dl.method dt .fa-pull-left.headerlink,main.bd-content #main-content dl.attribute dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.module dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.class dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.exception dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.function dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.decorator dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.data dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.method dt .fa-pull-left.headerlink,main.bd-content #print-main-content dl.attribute dt .fa-pull-left.headerlink{margin-right:.3em}main.bd-content #main-content dl.module dt .fa-pull-right.headerlink,main.bd-content #main-content dl.class dt .fa-pull-right.headerlink,main.bd-content #main-content dl.exception dt .fa-pull-right.headerlink,main.bd-content #main-content dl.function dt .fa-pull-right.headerlink,main.bd-content #main-content dl.decorator dt .fa-pull-right.headerlink,main.bd-content #main-content dl.data dt .fa-pull-right.headerlink,main.bd-content #main-content dl.method dt .fa-pull-right.headerlink,main.bd-content #main-content dl.attribute dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.module dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.class dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.exception dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.function dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.decorator dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.data dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.method dt .fa-pull-right.headerlink,main.bd-content #print-main-content dl.attribute dt .fa-pull-right.headerlink{margin-left:.3em}main.bd-content #main-content dl.module dt .pull-left.headerlink,main.bd-content #main-content dl.class dt .pull-left.headerlink,main.bd-content #main-content dl.exception dt .pull-left.headerlink,main.bd-content #main-content dl.function dt .pull-left.headerlink,main.bd-content #main-content dl.decorator dt .pull-left.headerlink,main.bd-content #main-content dl.data dt .pull-left.headerlink,main.bd-content #main-content dl.method dt .pull-left.headerlink,main.bd-content #main-content dl.attribute dt .pull-left.headerlink,main.bd-content #print-main-content dl.module dt .pull-left.headerlink,main.bd-content #print-main-content dl.class dt .pull-left.headerlink,main.bd-content #print-main-content dl.exception dt .pull-left.headerlink,main.bd-content #print-main-content dl.function dt .pull-left.headerlink,main.bd-content #print-main-content dl.decorator dt .pull-left.headerlink,main.bd-content #print-main-content dl.data dt .pull-left.headerlink,main.bd-content #print-main-content dl.method dt .pull-left.headerlink,main.bd-content #print-main-content dl.attribute dt .pull-left.headerlink{margin-right:.3em}main.bd-content #main-content dl.module dt .pull-right.headerlink,main.bd-content #main-content dl.class dt .pull-right.headerlink,main.bd-content #main-content dl.exception dt .pull-right.headerlink,main.bd-content #main-content dl.function dt .pull-right.headerlink,main.bd-content #main-content dl.decorator dt .pull-right.headerlink,main.bd-content #main-content dl.data dt .pull-right.headerlink,main.bd-content #main-content dl.method dt .pull-right.headerlink,main.bd-content #main-content dl.attribute dt .pull-right.headerlink,main.bd-content #print-main-content dl.module dt .pull-right.headerlink,main.bd-content #print-main-content dl.class dt .pull-right.headerlink,main.bd-content #print-main-content dl.exception dt .pull-right.headerlink,main.bd-content #print-main-content dl.function dt .pull-right.headerlink,main.bd-content #print-main-content dl.decorator dt .pull-right.headerlink,main.bd-content #print-main-content dl.data dt .pull-right.headerlink,main.bd-content #print-main-content dl.method dt .pull-right.headerlink,main.bd-content #print-main-content dl.attribute dt .pull-right.headerlink{margin-left:.3em}main.bd-content #main-content dl.module dt a .headerlink,main.bd-content #main-content dl.class dt a .headerlink,main.bd-content #main-content dl.exception dt a .headerlink,main.bd-content #main-content dl.function dt a .headerlink,main.bd-content #main-content dl.decorator dt a .headerlink,main.bd-content #main-content dl.data dt a .headerlink,main.bd-content #main-content dl.method dt a .headerlink,main.bd-content #main-content dl.attribute dt a .headerlink,main.bd-content #print-main-content dl.module dt a .headerlink,main.bd-content #print-main-content dl.class dt a .headerlink,main.bd-content #print-main-content dl.exception dt a .headerlink,main.bd-content #print-main-content dl.function dt a .headerlink,main.bd-content #print-main-content dl.decorator dt a .headerlink,main.bd-content #print-main-content dl.data dt a .headerlink,main.bd-content #print-main-content dl.method dt a .headerlink,main.bd-content #print-main-content dl.attribute dt a .headerlink{display:inline-block;text-decoration:inherit}main.bd-content #main-content dl.module dt .btn .headerlink,main.bd-content #main-content dl.class dt .btn .headerlink,main.bd-content #main-content dl.exception dt .btn .headerlink,main.bd-content #main-content dl.function dt .btn .headerlink,main.bd-content #main-content dl.decorator dt .btn .headerlink,main.bd-content #main-content dl.data dt .btn .headerlink,main.bd-content #main-content dl.method dt .btn .headerlink,main.bd-content #main-content dl.attribute dt .btn .headerlink,main.bd-content #print-main-content dl.module dt .btn .headerlink,main.bd-content #print-main-content dl.class dt .btn .headerlink,main.bd-content #print-main-content dl.exception dt .btn .headerlink,main.bd-content #print-main-content dl.function dt .btn .headerlink,main.bd-content #print-main-content dl.decorator dt .btn .headerlink,main.bd-content #print-main-content dl.data dt .btn .headerlink,main.bd-content #print-main-content dl.method dt .btn .headerlink,main.bd-content #print-main-content dl.attribute dt .btn .headerlink{display:inline}main.bd-content #main-content dl.module dt .btn .fa-large.headerlink,main.bd-content #main-content dl.class dt .btn .fa-large.headerlink,main.bd-content #main-content dl.exception dt .btn .fa-large.headerlink,main.bd-content #main-content dl.function dt .btn .fa-large.headerlink,main.bd-content #main-content dl.decorator dt .btn .fa-large.headerlink,main.bd-content #main-content dl.data dt .btn .fa-large.headerlink,main.bd-content #main-content dl.method dt .btn .fa-large.headerlink,main.bd-content #main-content dl.attribute dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.module dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.class dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.exception dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.function dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.decorator dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.data dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.method dt .btn .fa-large.headerlink,main.bd-content #print-main-content dl.attribute dt .btn .fa-large.headerlink{line-height:.9em}main.bd-content #main-content dl.module dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.class dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.exception dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.function dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.decorator dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.data dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.method dt .btn .fa-spin.headerlink,main.bd-content #main-content dl.attribute dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.module dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.class dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.exception dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.function dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.decorator dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.data dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.method dt .btn .fa-spin.headerlink,main.bd-content #print-main-content dl.attribute dt .btn .fa-spin.headerlink{display:inline-block}main.bd-content #main-content dl.module dt .nav .headerlink,main.bd-content #main-content dl.class dt .nav .headerlink,main.bd-content #main-content dl.exception dt .nav .headerlink,main.bd-content #main-content dl.function dt .nav .headerlink,main.bd-content #main-content dl.decorator dt .nav .headerlink,main.bd-content #main-content dl.data dt .nav .headerlink,main.bd-content #main-content dl.method dt .nav .headerlink,main.bd-content #main-content dl.attribute dt .nav .headerlink,main.bd-content #print-main-content dl.module dt .nav .headerlink,main.bd-content #print-main-content dl.class dt .nav .headerlink,main.bd-content #print-main-content dl.exception dt .nav .headerlink,main.bd-content #print-main-content dl.function dt .nav .headerlink,main.bd-content #print-main-content dl.decorator dt .nav .headerlink,main.bd-content #print-main-content dl.data dt .nav .headerlink,main.bd-content #print-main-content dl.method dt .nav .headerlink,main.bd-content #print-main-content dl.attribute dt .nav .headerlink{display:inline}main.bd-content #main-content dl.module dt .nav .fa-large.headerlink,main.bd-content #main-content dl.class dt .nav .fa-large.headerlink,main.bd-content #main-content dl.exception dt .nav .fa-large.headerlink,main.bd-content #main-content dl.function dt .nav .fa-large.headerlink,main.bd-content #main-content dl.decorator dt .nav .fa-large.headerlink,main.bd-content #main-content dl.data dt .nav .fa-large.headerlink,main.bd-content #main-content dl.method dt .nav .fa-large.headerlink,main.bd-content #main-content dl.attribute dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.module dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.class dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.exception dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.function dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.decorator dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.data dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.method dt .nav .fa-large.headerlink,main.bd-content #print-main-content dl.attribute dt .nav .fa-large.headerlink{line-height:.9em}main.bd-content #main-content dl.module dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.class dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.exception dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.function dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.decorator dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.data dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.method dt .nav .fa-spin.headerlink,main.bd-content #main-content dl.attribute dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.module dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.class dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.exception dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.function dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.decorator dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.data dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.method dt .nav .fa-spin.headerlink,main.bd-content #print-main-content dl.attribute dt .nav .fa-spin.headerlink{display:inline-block}main.bd-content #main-content dl.module dt .btn.headerlink:before,main.bd-content #main-content dl.class dt .btn.headerlink:before,main.bd-content #main-content dl.exception dt .btn.headerlink:before,main.bd-content #main-content dl.function dt .btn.headerlink:before,main.bd-content #main-content dl.decorator dt .btn.headerlink:before,main.bd-content #main-content dl.data dt .btn.headerlink:before,main.bd-content #main-content dl.method dt .btn.headerlink:before,main.bd-content #main-content dl.attribute dt .btn.headerlink:before,main.bd-content #print-main-content dl.module dt .btn.headerlink:before,main.bd-content #print-main-content dl.class dt .btn.headerlink:before,main.bd-content #print-main-content dl.exception dt .btn.headerlink:before,main.bd-content #print-main-content dl.function dt .btn.headerlink:before,main.bd-content #print-main-content dl.decorator dt .btn.headerlink:before,main.bd-content #print-main-content dl.data dt .btn.headerlink:before,main.bd-content #print-main-content dl.method dt .btn.headerlink:before,main.bd-content #print-main-content dl.attribute dt .btn.headerlink:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}main.bd-content #main-content dl.module dt .btn.headerlink:hover:before,main.bd-content #main-content dl.class dt .btn.headerlink:hover:before,main.bd-content #main-content dl.exception dt .btn.headerlink:hover:before,main.bd-content #main-content dl.function dt .btn.headerlink:hover:before,main.bd-content #main-content dl.decorator dt .btn.headerlink:hover:before,main.bd-content #main-content dl.data dt .btn.headerlink:hover:before,main.bd-content #main-content dl.method dt .btn.headerlink:hover:before,main.bd-content #main-content dl.attribute dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.module dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.class dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.exception dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.function dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.decorator dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.data dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.method dt .btn.headerlink:hover:before,main.bd-content #print-main-content dl.attribute dt .btn.headerlink:hover:before{opacity:1}main.bd-content #main-content dl.module dt .btn-mini .headerlink:before,main.bd-content #main-content dl.class dt .btn-mini .headerlink:before,main.bd-content #main-content dl.exception dt .btn-mini .headerlink:before,main.bd-content #main-content dl.function dt .btn-mini .headerlink:before,main.bd-content #main-content dl.decorator dt .btn-mini .headerlink:before,main.bd-content #main-content dl.data dt .btn-mini .headerlink:before,main.bd-content #main-content dl.method dt .btn-mini .headerlink:before,main.bd-content #main-content dl.attribute dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.module dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.class dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.exception dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.function dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.decorator dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.data dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.method dt .btn-mini .headerlink:before,main.bd-content #print-main-content dl.attribute dt .btn-mini .headerlink:before{font-size:14px;vertical-align:-15%}main.bd-content #main-content dl.module dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.class dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.exception dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.function dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.decorator dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.data dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.method dt .rst-versions .rst-current-version .headerlink,main.bd-content #main-content dl.attribute dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.module dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.class dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.exception dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.function dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.decorator dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.data dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.method dt .rst-versions .rst-current-version .headerlink,main.bd-content #print-main-content dl.attribute dt .rst-versions .rst-current-version .headerlink{color:#fcfcfc}main.bd-content #main-content dl.module dt:hover .headerlink:after,main.bd-content #main-content dl.class dt:hover .headerlink:after,main.bd-content #main-content dl.exception dt:hover .headerlink:after,main.bd-content #main-content dl.function dt:hover .headerlink:after,main.bd-content #main-content dl.decorator dt:hover .headerlink:after,main.bd-content #main-content dl.data dt:hover .headerlink:after,main.bd-content #main-content dl.method dt:hover .headerlink:after,main.bd-content #main-content dl.attribute dt:hover .headerlink:after,main.bd-content #print-main-content dl.module dt:hover .headerlink:after,main.bd-content #print-main-content dl.class dt:hover .headerlink:after,main.bd-content #print-main-content dl.exception dt:hover .headerlink:after,main.bd-content #print-main-content dl.function dt:hover .headerlink:after,main.bd-content #print-main-content dl.decorator dt:hover .headerlink:after,main.bd-content #print-main-content dl.data dt:hover .headerlink:after,main.bd-content #print-main-content dl.method dt:hover .headerlink:after,main.bd-content #print-main-content dl.attribute dt:hover .headerlink:after{visibility:visible}main.bd-content #main-content dl.module p,main.bd-content #main-content dl.class p,main.bd-content #main-content dl.exception p,main.bd-content #main-content dl.function p,main.bd-content #main-content dl.decorator p,main.bd-content #main-content dl.data p,main.bd-content #main-content dl.method p,main.bd-content #main-content dl.attribute p,main.bd-content #print-main-content dl.module p,main.bd-content #print-main-content dl.class p,main.bd-content #print-main-content dl.exception p,main.bd-content #print-main-content dl.function p,main.bd-content #print-main-content dl.decorator p,main.bd-content #print-main-content dl.data p,main.bd-content #print-main-content dl.method p,main.bd-content #print-main-content dl.attribute p{margin-bottom:12px !important}main.bd-content #main-content dl.module table,main.bd-content #main-content dl.class table,main.bd-content #main-content dl.exception table,main.bd-content #main-content dl.function table,main.bd-content #main-content dl.decorator table,main.bd-content #main-content dl.data table,main.bd-content #main-content dl.method table,main.bd-content #main-content dl.attribute table,main.bd-content #print-main-content dl.module table,main.bd-content #print-main-content dl.class table,main.bd-content #print-main-content dl.exception table,main.bd-content #print-main-content dl.function table,main.bd-content #print-main-content dl.decorator table,main.bd-content #print-main-content dl.data table,main.bd-content #print-main-content dl.method table,main.bd-content #print-main-content dl.attribute table{margin-bottom:12px !important}main.bd-content #main-content dl.module ul,main.bd-content #main-content dl.class ul,main.bd-content #main-content dl.exception ul,main.bd-content #main-content dl.function ul,main.bd-content #main-content dl.decorator ul,main.bd-content #main-content dl.data ul,main.bd-content #main-content dl.method ul,main.bd-content #main-content dl.attribute ul,main.bd-content #print-main-content dl.module ul,main.bd-content #print-main-content dl.class ul,main.bd-content #print-main-content dl.exception ul,main.bd-content #print-main-content dl.function ul,main.bd-content #print-main-content dl.decorator ul,main.bd-content #print-main-content dl.data ul,main.bd-content #print-main-content dl.method ul,main.bd-content #print-main-content dl.attribute ul{margin-bottom:12px !important}main.bd-content #main-content dl.module ol,main.bd-content #main-content dl.class ol,main.bd-content #main-content dl.exception ol,main.bd-content #main-content dl.function ol,main.bd-content #main-content dl.decorator ol,main.bd-content #main-content dl.data ol,main.bd-content #main-content dl.method ol,main.bd-content #main-content dl.attribute ol,main.bd-content #print-main-content dl.module ol,main.bd-content #print-main-content dl.class ol,main.bd-content #print-main-content dl.exception ol,main.bd-content #print-main-content dl.function ol,main.bd-content #print-main-content dl.decorator ol,main.bd-content #print-main-content dl.data ol,main.bd-content #print-main-content dl.method ol,main.bd-content #print-main-content dl.attribute ol{margin-bottom:12px !important}main.bd-content #main-content dl.module dd,main.bd-content #main-content dl.class dd,main.bd-content #main-content dl.exception dd,main.bd-content #main-content dl.function dd,main.bd-content #main-content dl.decorator dd,main.bd-content #main-content dl.data dd,main.bd-content #main-content dl.method dd,main.bd-content #main-content dl.attribute dd,main.bd-content #print-main-content dl.module dd,main.bd-content #print-main-content dl.class dd,main.bd-content #print-main-content dl.exception dd,main.bd-content #print-main-content dl.function dd,main.bd-content #print-main-content dl.decorator dd,main.bd-content #print-main-content dl.data dd,main.bd-content #print-main-content dl.method dd,main.bd-content #print-main-content dl.attribute dd{margin:0 0 12px 24px}main.bd-content #main-content dl.module:not(.docutils),main.bd-content #main-content dl.class:not(.docutils),main.bd-content #main-content dl.exception:not(.docutils),main.bd-content #main-content dl.function:not(.docutils),main.bd-content #main-content dl.decorator:not(.docutils),main.bd-content #main-content dl.data:not(.docutils),main.bd-content #main-content dl.method:not(.docutils),main.bd-content #main-content dl.attribute:not(.docutils),main.bd-content #print-main-content dl.module:not(.docutils),main.bd-content #print-main-content dl.class:not(.docutils),main.bd-content #print-main-content dl.exception:not(.docutils),main.bd-content #print-main-content dl.function:not(.docutils),main.bd-content #print-main-content dl.decorator:not(.docutils),main.bd-content #print-main-content dl.data:not(.docutils),main.bd-content #print-main-content dl.method:not(.docutils),main.bd-content #print-main-content dl.attribute:not(.docutils){margin-bottom:24px}main.bd-content #main-content dl.module:not(.docutils) dt,main.bd-content #main-content dl.class:not(.docutils) dt,main.bd-content #main-content dl.exception:not(.docutils) dt,main.bd-content #main-content dl.function:not(.docutils) dt,main.bd-content #main-content dl.decorator:not(.docutils) dt,main.bd-content #main-content dl.data:not(.docutils) dt,main.bd-content #main-content dl.method:not(.docutils) dt,main.bd-content #main-content dl.attribute:not(.docutils) dt,main.bd-content #print-main-content dl.module:not(.docutils) dt,main.bd-content #print-main-content dl.class:not(.docutils) dt,main.bd-content #print-main-content dl.exception:not(.docutils) dt,main.bd-content #print-main-content dl.function:not(.docutils) dt,main.bd-content #print-main-content dl.decorator:not(.docutils) dt,main.bd-content #print-main-content dl.data:not(.docutils) dt,main.bd-content #print-main-content dl.method:not(.docutils) dt,main.bd-content #print-main-content dl.attribute:not(.docutils) dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980B9;border-top:solid 3px #6ab0de;padding:6px;position:relative}main.bd-content #main-content dl.module:not(.docutils) dt:before,main.bd-content #main-content dl.class:not(.docutils) dt:before,main.bd-content #main-content dl.exception:not(.docutils) dt:before,main.bd-content #main-content dl.function:not(.docutils) dt:before,main.bd-content #main-content dl.decorator:not(.docutils) dt:before,main.bd-content #main-content dl.data:not(.docutils) dt:before,main.bd-content #main-content dl.method:not(.docutils) dt:before,main.bd-content #main-content dl.attribute:not(.docutils) dt:before,main.bd-content #print-main-content dl.module:not(.docutils) dt:before,main.bd-content #print-main-content dl.class:not(.docutils) dt:before,main.bd-content #print-main-content dl.exception:not(.docutils) dt:before,main.bd-content #print-main-content dl.function:not(.docutils) dt:before,main.bd-content #print-main-content dl.decorator:not(.docutils) dt:before,main.bd-content #print-main-content dl.data:not(.docutils) dt:before,main.bd-content #print-main-content dl.method:not(.docutils) dt:before,main.bd-content #print-main-content dl.attribute:not(.docutils) dt:before{color:#6ab0de}main.bd-content #main-content dl.module:not(.docutils) dt .headerlink,main.bd-content #main-content dl.class:not(.docutils) dt .headerlink,main.bd-content #main-content dl.exception:not(.docutils) dt .headerlink,main.bd-content #main-content dl.function:not(.docutils) dt .headerlink,main.bd-content #main-content dl.decorator:not(.docutils) dt .headerlink,main.bd-content #main-content dl.data:not(.docutils) dt .headerlink,main.bd-content #main-content dl.method:not(.docutils) dt .headerlink,main.bd-content #main-content dl.attribute:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.module:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.class:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.exception:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.function:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.decorator:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.data:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.method:not(.docutils) dt .headerlink,main.bd-content #print-main-content dl.attribute:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) dt:first-child,main.bd-content #main-content dl.class:not(.docutils) dt:first-child,main.bd-content #main-content dl.exception:not(.docutils) dt:first-child,main.bd-content #main-content dl.function:not(.docutils) dt:first-child,main.bd-content #main-content dl.decorator:not(.docutils) dt:first-child,main.bd-content #main-content dl.data:not(.docutils) dt:first-child,main.bd-content #main-content dl.method:not(.docutils) dt:first-child,main.bd-content #main-content dl.attribute:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.module:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.class:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.exception:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.function:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.decorator:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.data:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.method:not(.docutils) dt:first-child,main.bd-content #print-main-content dl.attribute:not(.docutils) dt:first-child{margin-top:0}main.bd-content #main-content dl.module:not(.docutils) dl dt,main.bd-content #main-content dl.class:not(.docutils) dl dt,main.bd-content #main-content dl.exception:not(.docutils) dl dt,main.bd-content #main-content dl.function:not(.docutils) dl dt,main.bd-content #main-content dl.decorator:not(.docutils) dl dt,main.bd-content #main-content dl.data:not(.docutils) dl dt,main.bd-content #main-content dl.method:not(.docutils) dl dt,main.bd-content #main-content dl.attribute:not(.docutils) dl dt,main.bd-content #print-main-content dl.module:not(.docutils) dl dt,main.bd-content #print-main-content dl.class:not(.docutils) dl dt,main.bd-content #print-main-content dl.exception:not(.docutils) dl dt,main.bd-content #print-main-content dl.function:not(.docutils) dl dt,main.bd-content #print-main-content dl.decorator:not(.docutils) dl dt,main.bd-content #print-main-content dl.data:not(.docutils) dl dt,main.bd-content #print-main-content dl.method:not(.docutils) dl dt,main.bd-content #print-main-content dl.attribute:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:#555}main.bd-content #main-content dl.module:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.class:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.exception:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.function:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.decorator:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.data:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.method:not(.docutils) dl dt .headerlink,main.bd-content #main-content dl.attribute:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.module:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.class:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.exception:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.function:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.decorator:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.data:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.method:not(.docutils) dl dt .headerlink,main.bd-content #print-main-content dl.attribute:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) tt,main.bd-content #main-content dl.class:not(.docutils) tt,main.bd-content #main-content dl.exception:not(.docutils) tt,main.bd-content #main-content dl.function:not(.docutils) tt,main.bd-content #main-content dl.decorator:not(.docutils) tt,main.bd-content #main-content dl.data:not(.docutils) tt,main.bd-content #main-content dl.method:not(.docutils) tt,main.bd-content #main-content dl.attribute:not(.docutils) tt,main.bd-content #print-main-content dl.module:not(.docutils) tt,main.bd-content #print-main-content dl.class:not(.docutils) tt,main.bd-content #print-main-content dl.exception:not(.docutils) tt,main.bd-content #print-main-content dl.function:not(.docutils) tt,main.bd-content #print-main-content dl.decorator:not(.docutils) tt,main.bd-content #print-main-content dl.data:not(.docutils) tt,main.bd-content #print-main-content dl.method:not(.docutils) tt,main.bd-content #print-main-content dl.attribute:not(.docutils) tt{font-weight:bold;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) code,main.bd-content #main-content dl.class:not(.docutils) code,main.bd-content #main-content dl.exception:not(.docutils) code,main.bd-content #main-content dl.function:not(.docutils) code,main.bd-content #main-content dl.decorator:not(.docutils) code,main.bd-content #main-content dl.data:not(.docutils) code,main.bd-content #main-content dl.method:not(.docutils) code,main.bd-content #main-content dl.attribute:not(.docutils) code,main.bd-content #print-main-content dl.module:not(.docutils) code,main.bd-content #print-main-content dl.class:not(.docutils) code,main.bd-content #print-main-content dl.exception:not(.docutils) code,main.bd-content #print-main-content dl.function:not(.docutils) code,main.bd-content #print-main-content dl.decorator:not(.docutils) code,main.bd-content #print-main-content dl.data:not(.docutils) code,main.bd-content #print-main-content dl.method:not(.docutils) code,main.bd-content #print-main-content dl.attribute:not(.docutils) code{font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) tt.descname,main.bd-content #main-content dl.class:not(.docutils) tt.descname,main.bd-content #main-content dl.exception:not(.docutils) tt.descname,main.bd-content #main-content dl.function:not(.docutils) tt.descname,main.bd-content #main-content dl.decorator:not(.docutils) tt.descname,main.bd-content #main-content dl.data:not(.docutils) tt.descname,main.bd-content #main-content dl.method:not(.docutils) tt.descname,main.bd-content #main-content dl.attribute:not(.docutils) tt.descname,main.bd-content #print-main-content dl.module:not(.docutils) tt.descname,main.bd-content #print-main-content dl.class:not(.docutils) tt.descname,main.bd-content #print-main-content dl.exception:not(.docutils) tt.descname,main.bd-content #print-main-content dl.function:not(.docutils) tt.descname,main.bd-content #print-main-content dl.decorator:not(.docutils) tt.descname,main.bd-content #print-main-content dl.data:not(.docutils) tt.descname,main.bd-content #print-main-content dl.method:not(.docutils) tt.descname,main.bd-content #print-main-content dl.attribute:not(.docutils) tt.descname{background-color:transparent;background-color:transparent;border:none;border:none;padding:0;padding:0;font-size:100% !important;font-size:100% !important;font-weight:bold;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) tt.descclassname,main.bd-content #main-content dl.class:not(.docutils) tt.descclassname,main.bd-content #main-content dl.exception:not(.docutils) tt.descclassname,main.bd-content #main-content dl.function:not(.docutils) tt.descclassname,main.bd-content #main-content dl.decorator:not(.docutils) tt.descclassname,main.bd-content #main-content dl.data:not(.docutils) tt.descclassname,main.bd-content #main-content dl.method:not(.docutils) tt.descclassname,main.bd-content #main-content dl.attribute:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.module:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.class:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.exception:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.function:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.decorator:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.data:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.method:not(.docutils) tt.descclassname,main.bd-content #print-main-content dl.attribute:not(.docutils) tt.descclassname{background-color:transparent;background-color:transparent;border:none;border:none;padding:0;padding:0;font-size:100% !important;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) code.descname,main.bd-content #main-content dl.class:not(.docutils) code.descname,main.bd-content #main-content dl.exception:not(.docutils) code.descname,main.bd-content #main-content dl.function:not(.docutils) code.descname,main.bd-content #main-content dl.decorator:not(.docutils) code.descname,main.bd-content #main-content dl.data:not(.docutils) code.descname,main.bd-content #main-content dl.method:not(.docutils) code.descname,main.bd-content #main-content dl.attribute:not(.docutils) code.descname,main.bd-content #print-main-content dl.module:not(.docutils) code.descname,main.bd-content #print-main-content dl.class:not(.docutils) code.descname,main.bd-content #print-main-content dl.exception:not(.docutils) code.descname,main.bd-content #print-main-content dl.function:not(.docutils) code.descname,main.bd-content #print-main-content dl.decorator:not(.docutils) code.descname,main.bd-content #print-main-content dl.data:not(.docutils) code.descname,main.bd-content #print-main-content dl.method:not(.docutils) code.descname,main.bd-content #print-main-content dl.attribute:not(.docutils) code.descname{background-color:transparent;border:none;padding:0;font-size:100% !important;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) code.descclassname,main.bd-content #main-content dl.class:not(.docutils) code.descclassname,main.bd-content #main-content dl.exception:not(.docutils) code.descclassname,main.bd-content #main-content dl.function:not(.docutils) code.descclassname,main.bd-content #main-content dl.decorator:not(.docutils) code.descclassname,main.bd-content #main-content dl.data:not(.docutils) code.descclassname,main.bd-content #main-content dl.method:not(.docutils) code.descclassname,main.bd-content #main-content dl.attribute:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.module:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.class:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.exception:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.function:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.decorator:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.data:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.method:not(.docutils) code.descclassname,main.bd-content #print-main-content dl.attribute:not(.docutils) code.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}main.bd-content #main-content dl.module:not(.docutils) .optional,main.bd-content #main-content dl.class:not(.docutils) .optional,main.bd-content #main-content dl.exception:not(.docutils) .optional,main.bd-content #main-content dl.function:not(.docutils) .optional,main.bd-content #main-content dl.decorator:not(.docutils) .optional,main.bd-content #main-content dl.data:not(.docutils) .optional,main.bd-content #main-content dl.method:not(.docutils) .optional,main.bd-content #main-content dl.attribute:not(.docutils) .optional,main.bd-content #print-main-content dl.module:not(.docutils) .optional,main.bd-content #print-main-content dl.class:not(.docutils) .optional,main.bd-content #print-main-content dl.exception:not(.docutils) .optional,main.bd-content #print-main-content dl.function:not(.docutils) .optional,main.bd-content #print-main-content dl.decorator:not(.docutils) .optional,main.bd-content #print-main-content dl.data:not(.docutils) .optional,main.bd-content #print-main-content dl.method:not(.docutils) .optional,main.bd-content #print-main-content dl.attribute:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}main.bd-content #main-content dl.module:not(.docutils) .property,main.bd-content #main-content dl.class:not(.docutils) .property,main.bd-content #main-content dl.exception:not(.docutils) .property,main.bd-content #main-content dl.function:not(.docutils) .property,main.bd-content #main-content dl.decorator:not(.docutils) .property,main.bd-content #main-content dl.data:not(.docutils) .property,main.bd-content #main-content dl.method:not(.docutils) .property,main.bd-content #main-content dl.attribute:not(.docutils) .property,main.bd-content #print-main-content dl.module:not(.docutils) .property,main.bd-content #print-main-content dl.class:not(.docutils) .property,main.bd-content #print-main-content dl.exception:not(.docutils) .property,main.bd-content #print-main-content dl.function:not(.docutils) .property,main.bd-content #print-main-content dl.decorator:not(.docutils) .property,main.bd-content #print-main-content dl.data:not(.docutils) .property,main.bd-content #print-main-content dl.method:not(.docutils) .property,main.bd-content #print-main-content dl.attribute:not(.docutils) .property{display:inline-block;padding-right:8px}main.bd-content #main-content dl.module .viewcode-link,main.bd-content #main-content dl.class .viewcode-link,main.bd-content #main-content dl.exception .viewcode-link,main.bd-content #main-content dl.function .viewcode-link,main.bd-content #main-content dl.decorator .viewcode-link,main.bd-content #main-content dl.data .viewcode-link,main.bd-content #main-content dl.method .viewcode-link,main.bd-content #main-content dl.attribute .viewcode-link,main.bd-content #print-main-content dl.module .viewcode-link,main.bd-content #print-main-content dl.class .viewcode-link,main.bd-content #print-main-content dl.exception .viewcode-link,main.bd-content #print-main-content dl.function .viewcode-link,main.bd-content #print-main-content dl.decorator .viewcode-link,main.bd-content #print-main-content dl.data .viewcode-link,main.bd-content #print-main-content dl.method .viewcode-link,main.bd-content #print-main-content dl.attribute .viewcode-link{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}div.cell div.cell_output{padding-right:0}div.cell.tag_output_scroll div.cell_output,div.cell.tag_scroll-output div.cell_output{max-height:24em;overflow-y:auto}div.cell.tag_scroll-input div.cell_input{max-height:24em;overflow-y:auto}.highlighttable .linenos{vertical-align:baseline}.toggle.admonition button.toggle-button{top:0.5em !important}.admonition{border-radius:.4em;box-shadow:0 0.2rem 0.5rem rgba(0,0,0,0.05),0 0 0.0625rem rgba(0,0,0,0.1)}.admonition.seealso{border-color:#28a745}.admonition.seealso .admonition-title{background-color:rgba(40,167,70,0.1)}.admonition.seealso .admonition-title:before{color:#28a745;content:"\f064"}button.toggle-button-hidden:before{bottom:0.2em !important}div.sidebar,div.margin,div.margin-caption p.caption,.cell.tag_popout,.cell.tag_margin{width:40%;float:right;background-color:unset;border-left:1px #a4a6a7 solid;margin-left:0.5em;padding:.2em 0 .2em 1em}div.sidebar p,div.margin p,div.margin-caption p.caption p,.cell.tag_popout p,.cell.tag_margin p{margin-bottom:0}div.sidebar p.sidebar-title,div.margin p.sidebar-title,div.margin-caption p.caption p.sidebar-title,.cell.tag_popout p.sidebar-title,.cell.tag_margin p.sidebar-title{font-weight:bold;font-size:1.2em}div.sidebar:not(.margin){background-color:#eeebee;padding:1em !important}@media (min-width: 768px){div.cell.tag_popout,div.cell.tag_margin,div.margin,div.margin-caption p.caption{border:none;clear:right;width:31% !important;margin:0 -35% 0 0 !important;padding:0 !important;font-size:0.9rem;line-height:1.3;vertical-align:baseline;position:relative}div.cell.tag_popout p,div.cell.tag_margin p,div.margin p,div.margin-caption p.caption p{margin-bottom:.5em}div.cell.tag_popout p.sidebar-title,div.cell.tag_margin p.sidebar-title,div.margin p.sidebar-title,div.margin-caption p.caption p.sidebar-title{font-size:1em}div.cell.tag_margin .cell_output{padding-left:0}div.sidebar:not(.margin){width:60%;margin-left:1.5em;margin-right:-28%}}@media (min-width: 768px){div.cell.tag_full-width,div.cell.tag_full_width,div.full_width,div.full-width{width:134% !important}}blockquote{margin:1em;padding:.2em 1.5em;border-left:4px solid #ccc}blockquote.pull-quote,blockquote.epigraph,blockquote.highlights{font-size:1.25em;border-left:none}blockquote div>p{margin-bottom:.5em}blockquote div>p+p.attribution{font-style:normal;font-size:.9em;text-align:right;color:#6c757d;padding-right:2em}div.highlight{background:none;margin-bottom:1em}div.cell div.highlight{margin-bottom:0em}.thebelab-cell{border:none !important;margin-right:.5em !important}.thebelab-cell .thebelab-input{padding-left:10px !important}.cell.docutils.container{padding-right:0px !important}button.thebe-launch-button{height:2.5em;font-size:1em}div.tableofcontents-wrapper p.caption{font-weight:600 !important;margin-bottom:0em !important}.cm-s-default{font-family:var(--jp-code-font-family);font-size:var(--jp-code-font-size);line-height:var(--jp-code-line-height)}.CodeMirror-focused{background-color:var(--jp-cell-editor-active-background) !important;border:var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);margin:-1px}.topbar,.topbar-contents,.topbar-main{height:3em}.topbar{background-color:white;transition:left .2s}.scrolled .topbar{box-shadow:0 6px 6px -6px rgba(0,0,0,0.3)}.topbar .topbar-main{padding-top:0.25rem;padding-bottom:0.25rem;padding-right:0}.topbar .topbar-main>button,.topbar .topbar-main>div,.topbar .topbar-main>a{float:left;height:100%}.topbar .topbar-main button.topbarbtn{margin:0 .1em;background-color:white;color:#5a5a5a;border:none;padding-top:.1rem;padding-bottom:.1rem;font-size:1.4em}.topbar .topbar-main button.topbarbtn i.fab{vertical-align:baseline;line-height:1}.topbar .topbar-main div.dropdown-buttons-trigger,.topbar .topbar-main a.edit-button,.topbar .topbar-main a.full-screen-button{float:right}.bd-topbar-whitespace{width:275px;flex:auto;transition:flex 0.2s ease 0s}@media (max-width: 768px){.bd-topbar-whitespace{border-bottom:1px solid transparent}.bd-topbar-whitespace.show,.bd-topbar-whitespace.collapsing,body.scrolled .bd-topbar-whitespace{border-color:rgba(0,0,0,0.1);position:absolute;bottom:0;width:100%;display:block}}span.topbar-button-text{margin-left:0.4em}@media (max-width: 768px){span.topbar-button-text{display:none}}div.dropdown-buttons-trigger div.dropdown-buttons{display:none;position:absolute;max-width:130px;margin-top:.2em;z-index:1000;transform:translate(-60%)}div.dropdown-buttons-trigger div.dropdown-buttons.sourcebuttons .topbarbtn i{padding-right:6px;margin-left:-5px;font-size:.9em !important}div.dropdown-buttons-trigger div.dropdown-buttons button.topbarbtn{padding-top:.35rem;padding-bottom:.35rem;min-width:120px !important;border:1px white solid !important;background-color:#5a5a5a;color:white;font-size:1em}div.dropdown-buttons-trigger:hover div.dropdown-buttons{display:block}a.dropdown-buttons i{margin-right:.5em}button.topbarbtn img{height:1.15em;padding-right:6px;margin-left:-5px}#navbar-toggler{position:relative;margin-right:1em;margin-left:.5em;color:#5a5a5a}#navbar-toggler i{transition:opacity .3s, transform .3s;position:absolute;top:16%;left:0;display:block;font-size:1.2em}#navbar-toggler i.fa-bars{opacity:0;transform:rotate(180deg) scale(0.5)}#navbar-toggler i.fa-arrow-left,#navbar-toggler i.fa-arrow-up{opacity:1}#navbar-toggler.collapsed i.fa-bars{opacity:1;transform:rotate(0) scale(1)}#navbar-toggler.collapsed i.fa-arrow-left,#navbar-toggler.collapsed i.fa-arrow-up{opacity:0;transform:rotate(-180deg) scale(0.5)}@media (max-width: 768px){#navbar-toggler i.fa-arrow-up{display:none}}@media (min-width: 768px){#navbar-toggler i.fa-arrow-up{display:none}#navbar-toggler i.fa-arrow-left{display:inherit}}@media (min-width: 768px){.bd-topbar-whitespace{max-width:275px}}.bd-toc{padding:0px !important;right:-1em;z-index:999;height:auto}.bd-toc div.onthispage,.bd-toc .toc-entry a{color:#5a5a5a}.bd-toc nav{opacity:0;max-height:0;transition:opacity 0.2s ease, max-height .7s ease;overflow-y:hidden;background:white;scrollbar-width:thin}.bd-toc nav::-webkit-scrollbar{width:5px}.bd-toc nav::-webkit-scrollbar{background:#f1f1f1}.bd-toc nav::-webkit-scrollbar-thumb{background:#c1c1c1}.bd-toc nav::-webkit-scrollbar-thumb:hover{background:#a0a0a0}@media (min-width: 992px){.bd-toc nav:not(:hover){-ms-overflow-style:none}.bd-toc nav:not(:hover)::-webkit-scrollbar{background:#FFFFFF}.bd-toc nav:not(:hover)::-webkit-scrollbar-thumb{background:#FFFFFF}}.bd-toc nav a:hover,.bd-toc nav li.active>a.active{color:rgba(var(--pst-color-link), 1)}.bd-toc nav li.active>a.active{border-left:2px solid rgba(var(--pst-color-link), 1)}.bd-toc nav>.nav{border-left:1px solid #eee}.bd-toc nav>.nav .nav{border-left:none}.bd-toc:hover nav,.bd-toc.show nav{max-height:90vh;opacity:1;overflow-y:auto}.bd-toc:hover .tocsection:after,.bd-toc.show .tocsection:after{opacity:0}.bd-toc .tocsection{padding:.5rem 0 .5rem 1rem !important}.bd-toc .tocsection:after{content:"\f107";font-family:"Font Awesome 5 Free";font-weight:900;padding-left:.5em;transition:opacity .3s ease}.bd-toc .toc-entry a{padding:.125rem 1rem !important}.bd-toc div.editthispage{display:none}#site-navigation{height:100vh !important;width:275px;flex:auto;top:0px !important;margin-left:0;overflow-y:auto;background:white;transition:margin-left .2s ease 0s, opacity .2s ease 0s, visibility .2s ease 0s;z-index:2000 !important;scrollbar-width:thin}#site-navigation.collapse{visibility:hidden;margin-left:-275px;opacity:0;display:block}#site-navigation.collapse.show{visibility:visible;margin-left:0;opacity:1}#site-navigation::-webkit-scrollbar{width:5px}#site-navigation::-webkit-scrollbar{background:#f1f1f1}#site-navigation::-webkit-scrollbar-thumb{background:#c1c1c1}#site-navigation::-webkit-scrollbar-thumb:hover{background:#a0a0a0}@media (min-width: 992px){#site-navigation:not(:hover){-ms-overflow-style:none}#site-navigation:not(:hover)::-webkit-scrollbar{background:#FFFFFF}#site-navigation:not(:hover)::-webkit-scrollbar-thumb{background:#FFFFFF}}@media (max-width: 768px){#site-navigation{position:fixed;margin-top:3em;border-right:1px solid rgba(0,0,0,0.1)}#site-navigation.single-page{display:none}}#site-navigation nav ul.nav li a,#site-navigation nav ul.nav ul li a{color:#5a5a5a}#site-navigation nav ul.nav a:hover,#site-navigation nav ul.nav li.active>a,#site-navigation nav ul.nav li.active>a:hover{color:rgba(var(--pst-color-link), 1)}#site-navigation h1.site-logo{margin:.5em 0 0 0;font-size:1.1em;color:black;text-align:center}#site-navigation div.navbar_extra_footer{text-align:center;font-size:.9em;color:#5a5a5a;margin-bottom:3em}#site-navigation.single-page{border-right:0}@media (min-width: 768px){div.navbar-brand-box{padding-top:2em}}div.navbar-brand-box a.navbar-brand{width:100%;height:auto}div.navbar-brand-box a.navbar-brand img{display:block;height:auto;width:auto;max-height:10vh;max-width:100%;margin:0 auto}@media (min-width: 768px){div.navbar-brand-box a.navbar-brand img{max-height:15vh !important}}nav.bd-links{margin-left:0px;overflow-y:visible;max-height:none}nav.bd-links p.caption,nav.bd-links .toctree-l1 a{padding-left:0em}@media (min-width: 768px){.bd-sidebar{max-width:275px}}footer{padding-left:0}footer>div.container{padding-left:0}ul.ablog-archive{padding-left:0px}ul.postlist{padding-left:0}ul.postlist>li>p:first-child{font-size:1.5em}ul.postlist li+li{margin-top:2em}ul.postlist li>p>a{font-style:normal;font-size:1.3em}div.bd-sidebar h2{font-size:1.5em}div.bd-sidebar h3{font-size:1.4em}div.bd-sidebar>ul{list-style:none;padding-left:0}@media print{.noprint{display:none !important}.onlyprint{display:block !important}.tag_popout,div.margin{float:none;margin:2em 0 2em auto !important;border:1px solid #a4a6a7;padding:1em !important;border-radius:5px;width:50%;margin-top:0;margin-bottom:0;padding-right:1em;font-size:0.9rem;line-height:1.3;background-color:#ffe !important;vertical-align:baseline;position:relative;padding-left:0}.tag_popout p,div.margin p{margin:0px}.bd-content div#main-content>div{flex:0 0 100%;max-width:100%;overflow-x:hidden}h1{text-align:center;margin-top:1em;margin-bottom:0}h1,h2,h3,h4{break-after:avoid;color:black}#jb-print-docs-body+div h1:first-of-type,div.prev-next-area{display:none}table{break-inside:avoid}pre{word-wrap:break-word}a.copybtn,a.headerlink{display:none}.tag-fullwidth{width:145%;clear:both}div.toggle-hidden{visibility:inherit;opacity:1;height:auto}button.toggle-button{display:none}blockquote.epigraph{border:none}div.container{min-width:50% !important}div.bd-sidebar,div.prev-next-bottom{display:none}div.topbar{height:0;padding:0;position:inherit}div.topbar div.topbar-main{opacity:0}.section-nav{border-left:0px;list-style-type:disc;margin-left:3em}.section-nav a{text-decoration:none;padding-left:0px}.section-nav li{display:list-item !important}.section-nav .nav{display:none}#jb-print-toc{margin-bottom:1.5rem}.footer{margin-top:1em}} diff --git a/doc/LectureNotes/_build/html/_static/sphinx-book-theme.d59cb220de22ca1c485ebbdc042f0030.js b/doc/LectureNotes/_build/html/_static/sphinx-book-theme.d59cb220de22ca1c485ebbdc042f0030.js new file mode 100644 index 000000000..d06a7cc4d --- /dev/null +++ b/doc/LectureNotes/_build/html/_static/sphinx-book-theme.d59cb220de22ca1c485ebbdc042f0030.js @@ -0,0 +1,22 @@ +var initTriggerNavBar=()=>{if($(window).width()<768){$("#navbar-toggler").trigger("click")}} +var scrollToActive=()=>{var navbar=document.getElementById('site-navigation') +var active_pages=navbar.querySelectorAll(".active") +var active_page=active_pages[active_pages.length-1] +if(active_page!==undefined&&active_page.offsetTop>($(window).height()*.5)){navbar.scrollTop=active_page.offsetTop-($(window).height()*.2)}} +var sbRunWhenDOMLoaded=cb=>{if(document.readyState!='loading'){cb()}else if(document.addEventListener){document.addEventListener('DOMContentLoaded',cb)}else{document.attachEvent('onreadystatechange',function(){if(document.readyState=='complete')cb()})}} +function toggleFullScreen(){var navToggler=$("#navbar-toggler");if(!document.fullscreenElement){document.documentElement.requestFullscreen();if(!navToggler.hasClass("collapsed")){navToggler.click();}}else{if(document.exitFullscreen){document.exitFullscreen();if(navToggler.hasClass("collapsed")){navToggler.click();}}}} +var initTooltips=()=>{$(document).ready(function(){$('[data-toggle="tooltip"]').tooltip();});} +var initTocHide=()=>{var scrollTimeout;var throttle=200;var tocHeight=$("#bd-toc-nav").outerHeight(true)+$(".bd-toc").outerHeight(true);var hideTocAfter=tocHeight+200;var checkTocScroll=function(){var margin_content=$(".margin, .tag_margin, .full-width, .full_width, .tag_full-width, .tag_full_width, .sidebar, .tag_sidebar, .popout, .tag_popout");margin_content.each((index,item)=>{var topOffset=$(item).offset().top-$(window).scrollTop();var bottomOffset=topOffset+$(item).outerHeight(true);var removeToc=(topOffset=0);if(removeToc&&window.pageYOffset>20){$("div.bd-toc").removeClass("show") +return false}else{$("div.bd-toc").addClass("show")};})};var manageScrolledClassOnBody=function(){if(window.scrollY>0){document.body.classList.add("scrolled");}else{document.body.classList.remove("scrolled");}} +$(window).on('scroll',function(){if(!scrollTimeout){scrollTimeout=setTimeout(function(){checkTocScroll();manageScrolledClassOnBody();scrollTimeout=null;},throttle);}});} +var printPdf=(el)=>{let tooltipID=$(el).attr("aria-describedby") +let tooltipTextDiv=$("#"+tooltipID).detach() +window.print() +$("body").append(tooltipTextDiv)} +var initThebeSBT=()=>{var title=$("div.section h1")[0] +if(!$(title).next().hasClass("thebe-launch-button")){$("").insertAfter($(title))} +initThebe();} +sbRunWhenDOMLoaded(initTooltips) +sbRunWhenDOMLoaded(initTriggerNavBar) +sbRunWhenDOMLoaded(scrollToActive) +sbRunWhenDOMLoaded(initTocHide) diff --git a/doc/LectureNotes/_build/html/_static/sphinx-thebe.css b/doc/LectureNotes/_build/html/_static/sphinx-thebe.css index b19a7b029..1da27930c 100644 --- a/doc/LectureNotes/_build/html/_static/sphinx-thebe.css +++ b/doc/LectureNotes/_build/html/_static/sphinx-thebe.css @@ -1,30 +1,30 @@ /* Thebelab Buttons */ .thebelab-button { - z-index: 999; - display: inline-block; - padding: 0.35em 1.2em; - margin: 0px 1px; - border-radius: 0.12em; - box-sizing: border-box; - text-decoration: none; - font-family: 'Roboto', sans-serif; - font-weight: 300; - text-align: center; - transition: all 0.2s; - background-color: #dddddd; - border: 0.05em solid white; - color: #000000; + z-index: 999; + display: inline-block; + padding: 0.35em 1.2em; + margin: 0px 1px; + border-radius: 0.12em; + box-sizing: border-box; + text-decoration: none; + font-family: "Roboto", sans-serif; + font-weight: 300; + text-align: center; + transition: all 0.2s; + background-color: #dddddd; + border: 0.05em solid white; + color: #000000; } -.thebelab-button:hover{ - border: 0.05em solid black; - background-color: #fcfcfc; +.thebelab-button:hover { + border: 0.05em solid black; + background-color: #fcfcfc; } .thebe-launch-button { - height: 2.2em; - font-size: .8em; - border: 1px black solid; + height: 2.2em; + font-size: 0.8em; + border: 1px black solid; } /* Thebelab Cell */ @@ -33,88 +33,97 @@ } .thebelab-cell .thebelab-input { - padding-left: 1em; - margin-bottom: .5em; - margin-top: .5em; + padding-left: 1em; + margin-bottom: 0.5em; + margin-top: 0.5em; } .thebelab-cell .jp-OutputArea { - margin-top: .5em; - margin-left: 1em; + margin-top: 0.5em; + margin-left: 1em; } button.thebelab-button.thebelab-run-button { - margin-left: 1.5em; - margin-bottom: .5em; + margin-left: 1.5em; + margin-bottom: 0.5em; } /* Loading button */ button.thebe-launch-button div.spinner { - float: left; - margin-right: 1em; + float: left; + margin-right: 1em; } /* Remove the spinner when thebelab is ready */ .thebe-launch-button.thebe-status-ready .spinner { - display: none; + display: none; } .thebe-launch-button span.status { - font-family: monospace; - font-weight: bold; + font-family: monospace; + font-weight: bold; } .thebe-launch-button.thebe-status-ready span.status { - color: green; + color: green; } .spinner { - height: 2em; - text-align: center; - font-size: 0.7em; - } + height: 2em; + text-align: center; + font-size: 0.7em; +} - .spinner > div { - background-color: #F37726; - height: 100%; - width: 6px; - display: inline-block; +.spinner > div { + background-color: #f37726; + height: 100%; + width: 6px; + display: inline-block; - -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; - animation: sk-stretchdelay 1.2s infinite ease-in-out; - } + -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; + animation: sk-stretchdelay 1.2s infinite ease-in-out; +} - .spinner .rect2 { - -webkit-animation-delay: -1.1s; - animation-delay: -1.1s; - } +.spinner .rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} - .spinner .rect3 { - -webkit-animation-delay: -1.0s; - animation-delay: -1.0s; - } +.spinner .rect3 { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} - .spinner .rect4 { - -webkit-animation-delay: -0.9s; - animation-delay: -0.9s; - } +.spinner .rect4 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} - .spinner .rect5 { - -webkit-animation-delay: -0.8s; - animation-delay: -0.8s; - } +.spinner .rect5 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} - @-webkit-keyframes sk-stretchdelay { - 0%, 40%, 100% { -webkit-transform: scaleY(0.4) } - 20% { -webkit-transform: scaleY(1.0) } +@-webkit-keyframes sk-stretchdelay { + 0%, + 40%, + 100% { + -webkit-transform: scaleY(0.4); } + 20% { + -webkit-transform: scaleY(1); + } +} - @keyframes sk-stretchdelay { - 0%, 40%, 100% { - transform: scaleY(0.4); - -webkit-transform: scaleY(0.4); - } 20% { - transform: scaleY(1.0); - -webkit-transform: scaleY(1.0); - } +@keyframes sk-stretchdelay { + 0%, + 40%, + 100% { + transform: scaleY(0.4); + -webkit-transform: scaleY(0.4); } + 20% { + transform: scaleY(1); + -webkit-transform: scaleY(1); + } +} diff --git a/doc/LectureNotes/_build/html/_static/sphinx-thebe.js b/doc/LectureNotes/_build/html/_static/sphinx-thebe.js index 4842c4455..7626dbb0a 100644 --- a/doc/LectureNotes/_build/html/_static/sphinx-thebe.js +++ b/doc/LectureNotes/_build/html/_static/sphinx-thebe.js @@ -1,30 +1,19 @@ /** * Add attributes to Thebe blocks to initialize thebe properly */ +var configureThebe = () => { + // Load thebe config in case we want to update it as some point + console.log("[sphinx-thebe]: Loading thebe config..."); + thebe_config = $('script[type="text/x-thebe-config"]')[0]; -var initThebe = () => { - // If Thebelab hasn't loaded, wait a bit and try again. This - // happens because we load ClipboardJS asynchronously. - if (window.thebelab === undefined) { - console.log("thebe not loaded, retrying..."); - setTimeout(initThebe, 500) - return - } + // If we already detect a Thebe cell, don't re-run + if (document.querySelectorAll("div.thebe-cell").length > 0) { + return; + } - console.log("Adding thebe to code cells..."); - - // Load thebe config in case we want to update it as some point - thebe_config = $('script[type="text/x-thebe-config"]')[0] - - - // If we already detect a Thebe cell, don't re-run - if (document.querySelectorAll('div.thebe-cell').length > 0) { - return; - } - - // Update thebe buttons with loading message - $(".thebe-launch-button").each((ii, button) => { - button.innerHTML = ` + // Update thebe buttons with loading message + $(".thebe-launch-button").each((ii, button) => { + button.innerHTML = `
@@ -32,65 +21,106 @@ var initThebe = () => {
`; - }) + }); - // Set thebe event hooks - var thebeStatus; - thebelab.on("status", function (evt, data) { - console.log("Status changed:", data.status, data.message); + // Set thebe event hooks + var thebeStatus; + thebelab.on("status", function (evt, data) { + console.log("Status changed:", data.status, data.message); - $(".thebe-launch-button ") - .removeClass("thebe-status-" + thebeStatus) - .addClass("thebe-status-" + data.status) - .find(".loading-text").html("Launching from mybinder.org: " + data.status + ""); + $(".thebe-launch-button ") + .removeClass("thebe-status-" + thebeStatus) + .addClass("thebe-status-" + data.status) + .find(".loading-text") + .html( + "Launching from mybinder.org: " + + data.status + + "" + ); - // Now update our thebe status - thebeStatus = data.status; + // Now update our thebe status + thebeStatus = data.status; - // Find any cells with an initialization tag and ask thebe to run them when ready - if (data.status === "ready") { - var thebeInitCells = document.querySelectorAll('.thebe-init, .tag_thebe-init'); - thebeInitCells.forEach((cell) => { - console.log("Initializing Thebe with cell: " + cell.id); - cell.querySelector('.thebelab-run-button').click(); - }); - } + // Find any cells with an initialization tag and ask thebe to run them when ready + if (data.status === "ready") { + var thebeInitCells = document.querySelectorAll( + ".thebe-init, .tag_thebe-init" + ); + thebeInitCells.forEach((cell) => { + console.log("Initializing Thebe with cell: " + cell.id); + cell.querySelector(".thebelab-run-button").click(); + }); + } + }); +}; + +/** + * Update the page DOM to use Thebe elements + */ +var modifyDOMForThebe = () => { + // Find all code cells, replace with Thebe interactive code cells + const codeCells = document.querySelectorAll(thebe_selector); + codeCells.forEach((codeCell, index) => { + const codeCellId = (index) => `codecell${index}`; + codeCell.id = codeCellId(index); + codeCellText = codeCell.querySelector(thebe_selector_input); + codeCellOutput = codeCell.querySelector(thebe_selector_output); + + // Clean up the language to make it work w/ CodeMirror and add it to the cell + dataLanguage = detectLanguage(kernelName); + + // Re-arrange the cell and add metadata + if (codeCellText) { + codeCellText.setAttribute("data-language", dataLanguage); + codeCellText.setAttribute("data-executable", "true"); + + // If we had an output, insert it just after the `pre` cell + if (codeCellOutput) { + $(codeCellOutput).attr("data-output", ""); + $(codeCellOutput).insertAfter(codeCellText); + } + } + + // Remove sphinx-copybutton blocks, which are common in Sphinx + codeCell.querySelectorAll("button.copybtn").forEach((el) => { + el.remove(); }); + }); +}; +var initThebe = () => { + // Load thebe dynamically if it's not already loaded + if (typeof thebelab === "undefined") { + console.log("[sphinx-thebe]: Loading thebe from CDN..."); + $(".thebe-launch-button ").text("Loading thebe from CDN..."); - // Find all code cells, replace with Thebe interactive code cells - const codeCells = document.querySelectorAll(thebe_selector) - codeCells.forEach((codeCell, index) => { - const codeCellId = index => `codecell${index}`; - codeCell.id = codeCellId(index); - codeCellText = codeCell.querySelector(thebe_selector_input); - codeCellOutput = codeCell.querySelector(thebe_selector_output); + const script = document.createElement("script"); + script.src = `${THEBE_JS_URL}`; + document.head.appendChild(script); - // Clean up the language to make it work w/ CodeMirror and add it to the cell - dataLanguage = detectLanguage(kernelName); - - if (codeCellText) { - codeCellText.setAttribute('data-language', dataLanguage); - codeCellText.setAttribute('data-executable', 'true'); - - // If we had an output, insert it just after the `pre` cell - if (codeCellOutput) { - $(codeCellOutput).attr("data-output", ""); - $(codeCellOutput).insertAfter(codeCellText); - } - } + // Runs once the script has finished loading + script.addEventListener("load", () => { + console.log("[sphinx-thebe]: Finished loading thebe from CDN..."); + configureThebe(); + modifyDOMForThebe(); + thebelab.bootstrap(); }); - - // Init thebe + } else { + console.log( + "[sphinx-thebe]: thebe already loaded, not loading from CDN..." + ); + configureThebe(); + modifyDOMForThebe(); thebelab.bootstrap(); -} + } +}; // Helper function to munge the language name var detectLanguage = (language) => { - if (language.indexOf('python') > -1) { - language = "python"; - } else if (language === 'ir') { - language = "r" - } - return language; -} + if (language.indexOf("python") > -1) { + language = "python"; + } else if (language === "ir") { + language = "r"; + } + return language; +}; diff --git a/doc/LectureNotes/_build/html/_static/webpack-macros.html b/doc/LectureNotes/_build/html/_static/webpack-macros.html index 144f18859..748f33e6b 100644 --- a/doc/LectureNotes/_build/html/_static/webpack-macros.html +++ b/doc/LectureNotes/_build/html/_static/webpack-macros.html @@ -12,14 +12,14 @@ {% endmacro %} {% macro head_pre_bootstrap() %} - - + + {% endmacro %} {% macro head_js_preload() %} - + {% endmacro %} {% macro body_post() %} - + {% endmacro %} \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter1.html b/doc/LectureNotes/_build/html/chapter1.html index 4dd4cda6f..8e959a813 100644 --- a/doc/LectureNotes/_build/html/chapter1.html +++ b/doc/LectureNotes/_build/html/chapter1.html @@ -7,8 +7,8 @@ 3. Linear Regression — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

+

About the course @@ -117,7 +119,7 @@ -

+

Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

+

From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

+

Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

+

Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf @@ -285,7 +302,7 @@ -
    +
    Contents @@ -405,7 +422,130 @@
    - + + +
    @@ -797,13 +937,13 @@ example of the functionality of Scikit-Learn.

    The intercept alpha: 
    - [1.99977416]
    + [2.09170751]
     Coefficient beta : 
    - [[4.86546962]]
    -Mean squared error: 0.31
    -Variance score: 0.87
    + [[4.91479093]]
    +Mean squared error: 0.21
    +Variance score: 0.90
     Mean squared log error: 0.01
    -Mean absolute error: 0.44
    +Mean absolute error: 0.35
     
    _images/chapter1_13_1.png @@ -903,7 +1043,7 @@ a linear \(x\)-dependence we s
    _images/chapter1_27_0.png -
    0.004999999999999994
    +
    0.004999999999999984
     
    @@ -1085,6 +1225,34 @@ covert them into the pandas DataFrame structure.

    +
    +
    ---------------------------------------------------------------------------
    +ValueError                                Traceback (most recent call last)
    +<ipython-input-8-30b53504a633> in <module>
    +      1 # Read the experimental data with Pandas
    +----> 2 Masses = pd.read_fwf(infile, usecols=(2,3,4,6,11),
    +      3               names=('N', 'Z', 'A', 'Element', 'Ebinding'),
    +      4               widths=(1,3,5,5,5,1,3,4,1,13,11,11,9,1,2,11,9,1,3,1,12,11,1),
    +      5               header=39,
    +
    +~/miniforge3/envs/myenv/lib/python3.9/site-packages/pandas/util/_decorators.py in wrapper(*args, **kwargs)
    +    309                     stacklevel=stacklevel,
    +    310                 )
    +--> 311             return func(*args, **kwargs)
    +    312 
    +    313         return wrapper
    +
    +~/miniforge3/envs/myenv/lib/python3.9/site-packages/pandas/io/parsers/readers.py in read_fwf(filepath_or_buffer, colspecs, widths, infer_nrows, **kwds)
    +    869                         len_index = len(index_col)
    +    870             if len(names) + len_index != len(colspecs):
    +--> 871                 raise ValueError("Length of colspecs must match length of names")
    +    872 
    +    873     kwds["colspecs"] = colspecs
    +
    +ValueError: Length of colspecs must match length of names
    +
    +
    +

    We have now read in the data, grouped them according to the variables we are interested in. We see how easy it is to reorganize the data using pandas. If we @@ -1106,25 +1274,6 @@ the number of nucleons \(A\),

    -
    -
                N    Z    A Element  Ebinding
    -A                                        
    -4   0       1    3    4      Li  1.153760
    -5   2       3    2    5      He  5.512132
    -6   7       3    3    6      Li  5.332331
    -7   12      4    3    7      Li  5.606439
    -8   17      4    4    8      Be  7.062435
    -...       ...  ...  ...     ...       ...
    -264 3297  156  108  264      Hs  7.298375
    -265 3303  157  108  265      Hs  7.296247
    -266 3310  158  108  266      Hs  7.298273
    -269 3331  159  110  269      Ds  7.250154
    -270 3337  160  110  270      Ds  7.253775
    -
    -[264 rows x 5 columns]
    -
    -
    -

    The next step, and we will define this mathematically later, is to set up the so-called design matrix. We will throughout call this matrix \(\boldsymbol{X}\). It has dimensionality \(n\times p\), where \(n\) is the number of data points and \(p\) are the so-called predictors. In our case here they are given by the number of polynomials in \(A\) we wish to include in the fit.

    @@ -1180,14 +1329,6 @@ Now we can print measures of how our fit is doing, the coefficients from the fit -
    -
    Mean squared error: 0.02
    -Variance score: 0.95
    -Mean absolute error: 0.05
    -
    -
    -_images/chapter1_57_1.png -

    As a teaser, let us now see how we can do this with decision trees using Scikit-Learn. Later we will switch to so-called random forests!

    @@ -1224,27 +1365,6 @@ Mean absolute error: 0.05
    -
    -_images/chapter1_59_0.png -
                N    Z    A Element  Ebinding   Eapprox
    -A                                                  
    -4   0       1    3    4      Li  1.153760  1.153760
    -5   2       3    2    5      He  5.512132  5.512132
    -6   7       3    3    6      Li  5.332331  5.332331
    -7   12      4    3    7      Li  5.606439  5.606439
    -8   17      4    4    8      Be  7.062435  7.062435
    -...       ...  ...  ...     ...       ...       ...
    -264 3297  156  108  264      Hs  7.298375  7.298375
    -265 3303  157  108  265      Hs  7.296247  7.296247
    -266 3310  158  108  266      Hs  7.298273  7.298273
    -269 3331  159  110  269      Ds  7.250154  7.250154
    -270 3337  160  110  270      Ds  7.253775  7.253775
    -
    -[264 rows x 6 columns]
    -0.007012403613997257
    -
    -
    -

    With a deeper and deeper tree level, we can almost reproduce every single data point by increasing the max depth of the tree. @@ -1291,99 +1411,6 @@ functionality.

    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    -  warnings.warn(
    -
    -
    -_images/chapter1_61_12.png -
    @@ -1620,133 +1647,6 @@ our matrix as \(\boldsymbol{X}\in {\m -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1AA^(2/3)A^(-1/3)1/A
    A
    41.04.02.5198420.6299610.250000
    51.05.02.9240180.5848040.200000
    61.06.03.3019270.5503210.166667
    71.07.03.6593060.5227580.142857
    81.08.04.0000000.5000000.125000
    ..................
    2641.0264.041.1531060.1558830.003788
    2651.0265.041.2569620.1556870.003774
    2661.0266.041.3606880.1554910.003759
    2691.0269.041.6710890.1549110.003717
    2701.0270.041.7743000.1547200.003704
    -

    264 rows × 5 columns

    -

    With \(\boldsymbol{\beta}\in {\mathbb{R}}^{p\times 1}\), it means that we will hereafter write our equations for the approximation as

    @@ -1972,9 +1872,6 @@ write

    -
    -_images/chapter1_136_0.png -

    We can easily test our fit by computing the \(R2\) score that we discussed in connection with the functionality of Scikit-Learn in the introductory slides. Since we are not using Scikit-Learn here we can define our own \(R2\) function as

    @@ -1993,11 +1890,6 @@ Since we are not using Scikit-Learn here we can define our own -
    -
    0.9549351910143222
    -
    -
    -

    We can easily add our MSE score as

    @@ -2010,11 +1902,6 @@ Since we are not using Scikit-Learn here we can define our own
    -
    -
    0.022022882954618364
    -
    -
    -

    and finally the relative error as

    @@ -2025,23 +1912,6 @@ Since we are not using Scikit-Learn here we can define our own
    -
    -
    A        
    -4    0       1.093247
    -5    2       0.275341
    -6    7       0.060080
    -7    12      0.019587
    -8    17      0.117986
    -               ...   
    -264  3297    0.000148
    -265  3303    0.001263
    -266  3310    0.002948
    -269  3331    0.000599
    -270  3337    0.002526
    -Name: Ebinding, Length: 264, dtype: float64
    -
    -
    -

    3.4.1. The \(\chi^2\) function

    @@ -2253,15 +2123,6 @@ instead of our own matrix inversion implementation.

    -
    -
    Mean squared error: 12.36
    -Variance score: 1.00
    -Mean absolute error: 2.83
    -[   0.          618.32047562 -861.13519106 1404.91549644] -11.057088709963182
    -
    -
    -_images/chapter1_183_1.png -

    The above simple polynomial in density \(\rho\) gives an excellent fit to the data.

    @@ -2327,19 +2188,6 @@ the fit becomes better or worse.

    -
    -
    [1.98036405 0.07345504 4.90054363]
    -Training R2
    -0.9955282554647219
    -Training MSE
    -0.009450756365829578
    -Test R2
    -0.9893149172528393
    -Test MSE
    -0.014209325470380275
    -
    -
    -

    Alternatively, you could write your own test-train splitting function as shown here.

    @@ -2437,18 +2285,6 @@ but now splitting the data into a training set and a test set.

    -
    -
    Training R2
    -0.9999858320366368
    -Training MSE
    -6.690569639355314
    -Test R2
    -0.9999840939906267
    -Test MSE
    -5.457770268480242
    -
    -
    -
    @@ -2503,49 +2339,6 @@ the house using the features (predictors) listed here.

    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function load_boston is deprecated; `load_boston` is deprecated in 1.0 and will be removed in 1.2.
    -
    -    The Boston housing prices dataset has an ethical problem. You can refer to
    -    the documentation of this function for further details.
    -
    -    The scikit-learn maintainers therefore strongly discourage the use of this
    -    dataset unless the purpose of the code is to study and educate about
    -    ethical issues in data science and machine learning.
    -
    -    In this case special case, you can fetch the dataset from the original
    -    source::
    -
    -        import pandas as pd
    -        import numpy as np
    -
    -
    -        data_url = "http://lib.stat.cmu.edu/datasets/boston"
    -        raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
    -        data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
    -        target = raw_df.values[1::2, 2]
    -
    -    Alternative datasets include the California housing dataset (i.e.
    -    func:`~sklearn.datasets.fetch_california_housing`) and the Ames housing
    -    dataset. You can load the datasets as follows:
    -
    -        from sklearn.datasets import fetch_california_housing
    -        housing = fetch_california_housing()
    -
    -    for the California housing dataset and:
    -
    -        from sklearn.datasets import fetch_openml
    -        housing = fetch_openml(name="house_prices", as_frame=True)
    -
    -    for the Ames housing dataset.
    -    
    -  warnings.warn(msg, category=FutureWarning)
    -
    -
    -
    dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename', 'data_module'])
    -
    -
    -

    Then we invoke Pandas

    @@ -2565,25 +2358,6 @@ the house using the features (predictors) listed here.

    -
    -
    CRIM       0
    -ZN         0
    -INDUS      0
    -CHAS       0
    -NOX        0
    -RM         0
    -AGE        0
    -DIS        0
    -RAD        0
    -TAX        0
    -PTRATIO    0
    -B          0
    -LSTAT      0
    -MEDV       0
    -dtype: int64
    -
    -
    -

    We can then visualize the data

    @@ -2597,13 +2371,6 @@ dtype: int64
    -
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).
    -  warnings.warn(msg, FutureWarning)
    -
    -
    -_images/chapter1_199_1.png -

    It is now useful to look at the correlation matrix

    @@ -2616,12 +2383,6 @@ dtype: int64
    -
    -
    <AxesSubplot:>
    -
    -
    -_images/chapter1_201_1.png -

    From the above coorelation plot we can see that MEDV is strongly correlated to LSTAT and RM. We see also that RAD and TAX are stronly correlated, but we don’t include this in our features together to avoid multi-colinearity

    @@ -2642,9 +2403,6 @@ dtype: int64
    -
    -_images/chapter1_203_0.png -

    Now we start training our model

    @@ -2670,14 +2428,6 @@ dtype: int64
    -
    -
    (404, 2)
    -(102, 2)
    -(404,)
    -(102,)
    -
    -
    -

    Then we use the linear regression functionality from Scikit-Learn

    @@ -2716,20 +2466,6 @@ dtype: int64
    -
    -
    The model performance for training set
    ---------------------------------------
    -RMSE is 5.6371293350711955
    -R2 score is 0.6300745149331701
    -
    -
    -The model performance for testing set
    ---------------------------------------
    -RMSE is 5.137400784702911
    -R2 score is 0.6628996975186953
    -
    -
    -
    @@ -2740,9 +2476,6 @@ R2 score is 0.6628996975186953
    -
    -_images/chapter1_210_0.png -
    @@ -2846,346 +2579,6 @@ represent a specific feature whose mean value is subracted.

    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    01234
    0-1.7497650.3426801.153036-0.2524360.981321
    10.5142190.221180-1.070043-0.1894960.255001
    2-0.4580270.435163-0.5835950.8168470.672721
    3-0.104411-0.5312801.029733-0.438136-1.118318
    41.6189821.541605-0.251879-0.8424360.184519
    50.9370820.7310001.361556-0.3262380.055676
    60.222400-1.443217-0.7563520.8164540.750445
    7-0.4559471.189622-1.690617-1.356399-1.232435
    8-0.544439-0.6681720.007315-0.6129391.299748
    9-1.733096-0.9833100.357508-1.6135791.470714
    -
    0   -0.175300
    -1    0.083527
    -2   -0.044334
    -3   -0.399836
    -4    0.331939
    -dtype: float64
    -0    1.069584
    -1    0.965548
    -2    1.018232
    -3    0.793167
    -4    0.918992
    -dtype: float64
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    01234
    0-1.5744650.2591531.1973700.1474000.649382
    10.6895190.137652-1.0257090.210340-0.076938
    2-0.2827270.351636-0.5392611.2166830.340782
    30.070889-0.6148081.074067-0.038300-1.450257
    41.7942821.458078-0.207545-0.442600-0.147420
    51.1123830.6474731.4058900.073598-0.276263
    60.397700-1.526744-0.7120181.2162900.418506
    7-0.2806471.106095-1.646283-0.956563-1.564374
    8-0.369139-0.7516990.051649-0.2131030.967809
    9-1.557795-1.0668370.401842-1.2137431.138775
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    01234
    00.00.00.00.00.0
    10.00.00.00.00.0
    20.00.00.00.00.0
    30.00.00.00.00.0
    40.00.00.00.00.0
    50.00.00.00.00.0
    60.00.00.00.00.0
    70.00.00.00.00.0
    80.00.00.00.00.0
    90.00.00.00.00.0
    -

    Small exercise: perform the standard scaling by including the standard deviation and compare with what Scikit-Learn gives.

    Another commonly used scaling method is min-max scaling. This is very @@ -3247,9 +2640,6 @@ ourmodel (here in terms of the polynomial degree of the model).

    -
    -_images/chapter1_218_0.png -
    @@ -3455,54 +2845,42 @@ your results. For which polynomial degree do you find an optimal MSE
    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    + - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter10.html b/doc/LectureNotes/_build/html/chapter10.html index 3bc899723..fc1d0dba7 100644 --- a/doc/LectureNotes/_build/html/chapter10.html +++ b/doc/LectureNotes/_build/html/chapter10.html @@ -7,8 +7,8 @@ 14. Building a Feed Forward Neural Network — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -205,7 +207,7 @@ -

    +

    Deep Learning Methods @@ -282,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf @@ -300,7 +302,7 @@ -

    +
    Contents @@ -464,7 +466,174 @@
    - + + +
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter11.html b/doc/LectureNotes/_build/html/chapter11.html index 59a43e75a..485855bb4 100644 --- a/doc/LectureNotes/_build/html/chapter11.html +++ b/doc/LectureNotes/_build/html/chapter11.html @@ -7,8 +7,8 @@ 15. Solving Differential Equations with Deep Learning — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -205,7 +207,7 @@ -

    +

    Deep Learning Methods @@ -282,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf

    @@ -300,7 +302,7 @@ -
    + - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter12.html b/doc/LectureNotes/_build/html/chapter12.html index c1b605ab8..bba46ff2e 100644 --- a/doc/LectureNotes/_build/html/chapter12.html +++ b/doc/LectureNotes/_build/html/chapter12.html @@ -7,8 +7,8 @@ 16. Convolutional Neural Networks — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -205,7 +207,7 @@ -

    +

    Deep Learning Methods @@ -282,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf

    @@ -300,7 +302,7 @@ -
    + - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter13.html b/doc/LectureNotes/_build/html/chapter13.html index f7f0db19c..99753044f 100644 --- a/doc/LectureNotes/_build/html/chapter13.html +++ b/doc/LectureNotes/_build/html/chapter13.html @@ -7,8 +7,8 @@ 17. Recurrent neural networks: Overarching view — Applied Data Analysis and Machine Learning - - + + - + @@ -41,21 +41,23 @@ - - - - - + + + + - + + + + @@ -90,11 +92,11 @@ -

    +

    About the course @@ -116,7 +118,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -133,7 +135,7 @@ -

    +

    From Regression to Support Vector Machines @@ -170,7 +172,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -187,7 +189,7 @@ -

    +

    Dimensionality Reduction @@ -204,7 +206,7 @@ -

    +

    Deep Learning Methods @@ -281,7 +283,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf

    @@ -299,7 +301,7 @@ -
    +
    Contents @@ -365,7 +367,76 @@
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter2.html b/doc/LectureNotes/_build/html/chapter2.html index 40fee84d2..cbf86722e 100644 --- a/doc/LectureNotes/_build/html/chapter2.html +++ b/doc/LectureNotes/_build/html/chapter2.html @@ -7,8 +7,8 @@ 4. Ridge and Lasso Regression — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@ -
    +
    Contents @@ -370,7 +387,95 @@
    - + + +
    @@ -721,13 +826,13 @@ The simple answer is to use the linear algebra function for the pseudoinverse, t [2 4 5] [3 5 6]] test U -[[ 2.22044605e-16 -1.11362930e-15 -8.52945798e-16] - [-1.11362930e-15 0.00000000e+00 -1.37835429e-16] - [-8.52945798e-16 -1.37835429e-16 -1.11022302e-16]] +[[ 4.44089210e-16 -4.69484813e-16 -6.67314874e-16] + [-4.69484813e-16 -4.44089210e-16 -1.54041041e-16] + [-6.67314874e-16 -1.54041041e-16 1.11022302e-16]] test VT -[[ 1.11022302e-16 -1.84228957e-16 2.68545647e-16] - [-1.84228957e-16 0.00000000e+00 -6.33166055e-17] - [ 2.68545647e-16 -6.33166055e-17 -1.11022302e-16]] +[[ 2.22044605e-16 3.78156479e-17 1.85278920e-16] + [ 3.78156479e-17 0.00000000e+00 -6.33166055e-17] + [ 1.85278920e-16 -6.33166055e-17 -1.11022302e-16]] [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]] @@ -1109,10 +1214,10 @@ covariance matrix through the np.linalg.eig() function.

    -
    0.0934597075922044
    -4.185278747229417
    -[[0.84292394 2.47432993]
    - [2.47432993 8.32458459]]
    +
    -0.13876586436927824
    +3.722047011333792
    +[[ 1.233528    3.58428804]
    + [ 3.58428804 11.47942814]]
     
    @@ -1149,10 +1254,10 @@ a more brute force way. Here we scale the mean values for each column of the des
    -
    0.08673755293381497
    -1.3925515884752442
    -[[1.         0.62364974]
    - [0.62364974 1.        ]]
    +
    0.08464758160254343
    +1.8503720991789538
    +[[1.         0.65626043]
    + [0.65626043 1.        ]]
     
    @@ -1182,30 +1287,30 @@ this matrix we easily see that it is a positive definite matrix.

    -
    [[ 0.77034458  1.03056589]
    - [-0.46986815 -1.26822717]
    - [ 0.82650876 -0.37655936]
    - [ 1.1323603   2.97788031]
    - [-0.07989327  0.08630331]
    - [-1.8608479  -5.59839245]
    - [-0.3528556   0.06021285]
    - [ 0.25286618  1.40116777]
    - [-1.1224392  -2.14042769]
    - [ 0.90382431  3.82747653]]
    +
    [[-1.41876267 -4.93248252]
    + [ 1.83687444  5.28097861]
    + [ 0.37429133  0.59766   ]
    + [ 0.59159438  1.71869727]
    + [-0.80315282 -0.89348922]
    + [-0.38748219 -2.12288563]
    + [-2.08917679 -5.64933923]
    + [ 0.27803645  0.89944994]
    + [ 1.23703839  3.2321528 ]
    + [ 0.38073947  1.86925797]]
               0         1
    -0  0.770345  1.030566
    -1 -0.469868 -1.268227
    -2  0.826509 -0.376559
    -3  1.132360  2.977880
    -4 -0.079893  0.086303
    -5 -1.860848 -5.598392
    -6 -0.352856  0.060213
    -7  0.252866  1.401168
    -8 -1.122439 -2.140428
    -9  0.903824  3.827477
    +0 -1.418763 -4.932483
    +1  1.836874  5.280979
    +2  0.374291  0.597660
    +3  0.591594  1.718697
    +4 -0.803153 -0.893489
    +5 -0.387482 -2.122886
    +6 -2.089177 -5.649339
    +7  0.278036  0.899450
    +8  1.237038  3.232153
    +9  0.380739  1.869258
               0         1
    -0  1.000000  0.900449
    -1  0.900449  1.000000
    +0  1.000000  0.977418
    +1  0.977418  1.000000
     
    @@ -1262,37 +1367,37 @@ this matrix we easily see that it is a positive definite matrix.

         0         1         2         3         4         5         6         7   \
     0   0.0  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000   
    -1   0.0  0.088611  0.086567  0.090229  0.089425  0.088631  0.082174  0.081773   
    -2   0.0  0.086567  0.085416  0.088176  0.087834  0.087501  0.080517  0.080406   
    -3   0.0  0.090229  0.088176  0.097360  0.096623  0.095871  0.091891  0.091630   
    -4   0.0  0.089425  0.087834  0.096623  0.096173  0.095702  0.091426  0.091363   
    -5   0.0  0.088631  0.087501  0.095871  0.095702  0.095510  0.090929  0.091060   
    -6   0.0  0.082174  0.080517  0.091891  0.091426  0.090929  0.088853  0.088816   
    -7   0.0  0.081773  0.080406  0.091630  0.091363  0.091060  0.088816  0.088926   
    -8   0.0  0.081431  0.080347  0.091414  0.091340  0.091224  0.088809  0.089059   
    -9   0.0  0.081140  0.080334  0.091236  0.091349  0.091416  0.088825  0.089212   
    -10  0.0  0.073695  0.072492  0.084408  0.084224  0.084000  0.083053  0.083220   
    -11  0.0  0.073531  0.072530  0.084400  0.084364  0.084282  0.083227  0.083506   
    -12  0.0  0.073423  0.072617  0.084444  0.084549  0.084604  0.083441  0.083829   
    -13  0.0  0.073368  0.072750  0.084536  0.084777  0.084965  0.083692  0.084184   
    -14  0.0  0.073362  0.072928  0.084670  0.085044  0.085361  0.083977  0.084570   
    +1   0.0  0.081253  0.083015  0.080297  0.079157  0.078040  0.071112  0.069847   
    +2   0.0  0.083015  0.086807  0.084909  0.084904  0.084702  0.076955  0.076338   
    +3   0.0  0.080297  0.084909  0.084414  0.084862  0.085018  0.077793  0.077402   
    +4   0.0  0.079157  0.084904  0.084862  0.086076  0.086872  0.079281  0.079383   
    +5   0.0  0.078040  0.084702  0.085018  0.086872  0.088212  0.080319  0.080847   
    +6   0.0  0.071112  0.076955  0.077793  0.079281  0.080319  0.073719  0.074034   
    +7   0.0  0.069847  0.076338  0.077402  0.079383  0.080847  0.074034  0.074693   
    +8   0.0  0.068735  0.075760  0.077003  0.079405  0.081233  0.074237  0.075195   
    +9   0.0  0.067769  0.075241  0.076628  0.079389  0.081533  0.074375  0.075594   
    +10  0.0  0.062136  0.068318  0.069888  0.071921  0.073449  0.067622  0.068376   
    +11  0.0  0.061149  0.067723  0.069408  0.071767  0.073583  0.067612  0.068608   
    +12  0.0  0.060309  0.067213  0.068991  0.071632  0.073699  0.067599  0.068806   
    +13  0.0  0.059601  0.066789  0.068642  0.071529  0.073816  0.067597  0.068992   
    +14  0.0  0.059013  0.066449  0.068363  0.071467  0.073949  0.067620  0.069181   
     
               8         9         10        11        12        13        14  
     0   0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  
    -1   0.081431  0.081140  0.073695  0.073531  0.073423  0.073368  0.073362  
    -2   0.080347  0.080334  0.072492  0.072530  0.072617  0.072750  0.072928  
    -3   0.091414  0.091236  0.084408  0.084400  0.084444  0.084536  0.084670  
    -4   0.091340  0.091349  0.084224  0.084364  0.084549  0.084777  0.085044  
    -5   0.091224  0.091416  0.084000  0.084282  0.084604  0.084965  0.085361  
    -6   0.088809  0.088825  0.083053  0.083227  0.083441  0.083692  0.083977  
    -7   0.089059  0.089212  0.083220  0.083506  0.083829  0.084184  0.084570  
    -8   0.089329  0.089614  0.083404  0.083799  0.084226  0.084683  0.085167  
    -9   0.089614  0.090028  0.083600  0.084101  0.084629  0.085184  0.085764  
    -10  0.083404  0.083600  0.078667  0.078992  0.079347  0.079729  0.080137  
    -11  0.083799  0.084101  0.078992  0.079406  0.079847  0.080312  0.080801  
    -12  0.084226  0.084629  0.079347  0.079847  0.080370  0.080916  0.081483  
    -13  0.084683  0.085184  0.079729  0.080312  0.080916  0.081540  0.082183  
    -14  0.085167  0.085764  0.080137  0.080801  0.081483  0.082183  0.082900  
    +1   0.068735  0.067769  0.062136  0.061149  0.060309  0.059601  0.059013  
    +2   0.075760  0.075241  0.068318  0.067723  0.067213  0.066789  0.066449  
    +3   0.077003  0.076628  0.069888  0.069408  0.068991  0.068642  0.068363  
    +4   0.079405  0.079389  0.071921  0.071767  0.071632  0.071529  0.071467  
    +5   0.081233  0.081533  0.073449  0.073583  0.073699  0.073816  0.073949  
    +6   0.074237  0.074375  0.067622  0.067612  0.067599  0.067597  0.067620  
    +7   0.075195  0.075594  0.068376  0.068608  0.068806  0.068992  0.069181  
    +8   0.075959  0.076589  0.068965  0.069409  0.069796  0.070150  0.070491  
    +9   0.076589  0.077425  0.069441  0.070074  0.070630  0.071136  0.071614  
    +10  0.068965  0.069441  0.063052  0.063364  0.063631  0.063874  0.064110  
    +11  0.069409  0.070074  0.063364  0.063851  0.064274  0.064658  0.065020  
    +12  0.069796  0.070630  0.063631  0.064274  0.064838  0.065348  0.065826  
    +13  0.070150  0.071136  0.063874  0.064658  0.065348  0.065974  0.066558  
    +14  0.070491  0.071614  0.064110  0.065020  0.065826  0.066558  0.067240  
     
    @@ -2149,9 +2254,9 @@ set of \(\lambda\) values.

    [ 2.03099776 -0.17917768  5.18029127]
     Training MSE for OLS
    -0.009163470508352211
    +0.009163470508352218
     Test MSE OLS
    -0.008675369724976501
    +0.008675369724975977
     
    _images/chapter2_249_1.png @@ -2428,7 +2533,7 @@ The following code example solves the simpler problem we discussed above, where
    ---------------------------------------------------------------------------
     ModuleNotFoundError                       Traceback (most recent call last)
    -/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42449/3530606977.py in <module>
    +<ipython-input-12-d670a873ab0c> in <module>
     ----> 1 from cvxopt import matrix, spdiag, mul, div, sqrt, normal, setseed
           2 from cvxopt import blas, lapack, solvers, sparse, spmatrix
           3 import math
    @@ -3049,54 +3154,42 @@ decreasing \(\lambda\) and shr
     
                   
    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter3.html b/doc/LectureNotes/_build/html/chapter3.html index 3a92ba03b..0b5490f37 100644 --- a/doc/LectureNotes/_build/html/chapter3.html +++ b/doc/LectureNotes/_build/html/chapter3.html @@ -7,8 +7,8 @@ 5. Resampling Methods — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@
    -
    +
    Contents @@ -379,7 +396,104 @@
    - + + +
    @@ -643,10 +757,10 @@ number \(i\) is left out. Usin
    -
    Runtime: 0.184895 sec
    +
    Runtime: 0.0896981 sec
     Jackknife Statistics :
     original           bias      std. error
    - 100.109        100.099        0.148768
    + 100.213        100.203        0.148564
     
    @@ -865,7 +979,7 @@ theorem.

    Bootstrap Statistics :
     original           bias      std. error
    - 99.7134  15.0572        99.7151        0.151986
    + 99.8879  15.0782        99.8894        0.149213
     
    @@ -1001,10 +1115,10 @@ We use a more compact notation in terms of the expectation value

    -
    Error: 0.013121573975499602
    -Bias^2: 0.012073649439965807
    -Var: 0.0010479245355337968
    -0.013121573975499602 >= 0.012073649439965807 + 0.0010479245355337968 = 0.013121573975499604
    +
    Error: 0.013121574061370796
    +Bias^2: 0.012073649472576395
    +Var: 0.0010479245887943952
    +0.013121574061370796 >= 0.012073649472576395 + 0.0010479245887943952 = 0.01312157406137079
     
    _images/chapter3_61_1.png @@ -1063,86 +1177,83 @@ Var: 0.0010479245355337968
    Polynomial degree: 0
    -Error: 0.3214960170351912
    +Error: 0.32149601703519115
     Bias^2: 0.3123314713548606
     Var: 0.009164545680330616
    -0.3214960170351912 >= 0.3123314713548606 + 0.009164545680330616 = 0.3214960170351912
    +0.32149601703519115 >= 0.3123314713548606 + 0.009164545680330616 = 0.3214960170351912
     Polynomial degree: 1
    -Error: 0.08426840630693411
    -Bias^2: 0.07968918676726029
    -Var: 0.004579219539673836
    -0.08426840630693411 >= 0.07968918676726029 + 0.004579219539673836 = 0.08426840630693413
    +Error: 0.08426840630693412
    +Bias^2: 0.0796891867672603
    +Var: 0.004579219539673834
    +0.08426840630693412 >= 0.0796891867672603 + 0.004579219539673834 = 0.08426840630693413
     Polynomial degree: 2
    -Error: 0.10398646080125035
    +Error: 0.10398646080125037
     Bias^2: 0.10077114273548984
    -Var: 0.003215318065760509
    -0.10398646080125035 >= 0.10077114273548984 + 0.003215318065760509 = 0.10398646080125035
    -
    -
    -
    Polynomial degree: 3
    -Error: 0.06547790180152357
    -Bias^2: 0.06208238634231953
    -Var: 0.0033955154592040944
    -0.06547790180152357 >= 0.06208238634231953 + 0.0033955154592040944 = 0.06547790180152363
    +Var: 0.0032153180657605125
    +0.10398646080125037 >= 0.10077114273548984 + 0.0032153180657605125 = 0.10398646080125036
    +Polynomial degree: 3
    +Error: 0.06547790180152352
    +Bias^2: 0.06208238634231944
    +Var: 0.003395515459204093
    +0.06547790180152352 >= 0.06208238634231944 + 0.003395515459204093 = 0.06547790180152353
     Polynomial degree: 4
    -Error: 0.06844519414009438
    -Bias^2: 0.06453579006728315
    -Var: 0.003909404072811231
    -0.06844519414009438 >= 0.06453579006728315 + 0.003909404072811231 = 0.06844519414009438
    +Error: 0.06844519414009442
    +Bias^2: 0.06453579006728322
    +Var: 0.003909404072811217
    +0.06844519414009442 >= 0.06453579006728322 + 0.003909404072811217 = 0.06844519414009444
     Polynomial degree: 5
    -Error: 0.05227921801205692
    -Bias^2: 0.04818727730430296
    -Var: 0.0040919407077539514
    -0.05227921801205692 >= 0.04818727730430296 + 0.0040919407077539514 = 0.05227921801205691
    +Error: 0.052279218012057004
    +Bias^2: 0.048187277304303056
    +Var: 0.004091940707753948
    +0.052279218012057004 >= 0.048187277304303056 + 0.004091940707753948 = 0.052279218012057004
     
    Polynomial degree: 6
    -Error: 0.03781367141738885
    -Bias^2: 0.033657685071527485
    -Var: 0.004155986345861374
    -0.03781367141738885 >= 0.033657685071527485 + 0.004155986345861374 = 0.03781367141738886
    +Error: 0.037813671417388985
    +Bias^2: 0.033657685071527624
    +Var: 0.004155986345861364
    +0.037813671417388985 >= 0.033657685071527624 + 0.004155986345861364 = 0.03781367141738899
     Polynomial degree: 7
    -Error: 0.027609773491022314
    -Bias^2: 0.02299949826036602
    -Var: 0.004610275230656294
    -0.027609773491022314 >= 0.02299949826036602 + 0.004610275230656294 = 0.027609773491022314
    +Error: 0.027609773491022407
    +Bias^2: 0.0229994982603662
    +Var: 0.004610275230656187
    +0.027609773491022407 >= 0.0229994982603662 + 0.004610275230656187 = 0.027609773491022387
     Polynomial degree: 8
    -Error: 0.017355848195591845
    -Bias^2: 0.01033172130665515
    -Var: 0.007024126888936694
    -0.017355848195591845 >= 0.01033172130665515 + 0.007024126888936694 = 0.01735584819559184
    +Error: 0.017355848195593354
    +Bias^2: 0.010331721306655144
    +Var: 0.0070241268889382116
    +0.017355848195593354 >= 0.010331721306655144 + 0.0070241268889382116 = 0.017355848195593354
    +Polynomial degree:
     
    -
    Polynomial degree: 9
    -Error: 0.026605727637176654
    -Bias^2: 0.010018312644139347
    -Var: 0.016587414993037307
    -0.026605727637176654 >= 0.010018312644139347 + 0.016587414993037307 = 0.026605727637176654
    +
     9
    +Error: 0.026605727637184613
    +Bias^2: 0.010018312644139205
    +Var: 0.016587414993045405
    +0.026605727637184613 >= 0.010018312644139205 + 0.016587414993045405 = 0.02660572763718461
     Polynomial degree: 10
    -Error: 0.02159270458799264
    -Bias^2: 0.010516485576652856
    -Var: 0.011076219011339788
    -0.02159270458799264 >= 0.010516485576652856 + 0.011076219011339788 = 0.021592704587992645
    +Error: 0.021592704588021167
    +Bias^2: 0.010516485576646513
    +Var: 0.01107621901137465
    +0.021592704588021167 >= 0.010516485576646513 + 0.01107621901137465 = 0.021592704588021164
     Polynomial degree: 11
    -Error: 0.07160048164248561
    -Bias^2: 0.014436800088969727
    -Var: 0.05716368155351588
    -0.07160048164248561 >= 0.014436800088969727 + 0.05716368155351588 = 0.07160048164248561
    -
    -
    -
    Polynomial degree: 12
    -Error: 0.11547777218940905
    -Bias^2: 0.016285782696075054
    -Var: 0.099191989493334
    -0.11547777218940905 >= 0.016285782696075054 + 0.099191989493334 = 0.11547777218940906
    +Error: 0.07160048164232467
    +Bias^2: 0.014436800088896274
    +Var: 0.057163681553428394
    +0.07160048164232467 >= 0.014436800088896274 + 0.057163681553428394 = 0.07160048164232467
    +Polynomial degree: 12
    +Error: 0.11547777218875695
    +Bias^2: 0.016285782696017055
    +Var: 0.0991919894927399
    +0.11547777218875695 >= 0.016285782696017055 + 0.0991919894927399 = 0.11547777218875696
     Polynomial degree: 13
    -Error: 0.22842468702288576
    -Bias^2: 0.01975416527179247
    -Var: 0.20867052175109335
    -0.22842468702288576 >= 0.01975416527179247 + 0.20867052175109335 = 0.22842468702288582
    +Error: 0.2284246870217459
    +Bias^2: 0.019754165271682844
    +Var: 0.20867052175006306
    +0.2284246870217459 >= 0.019754165271682844 + 0.20867052175006306 = 0.2284246870217459
     
    -_images/chapter3_62_5.png +_images/chapter3_62_3.png

    The bias-variance tradeoff summarizes the fundamental tension in @@ -1360,17 +1471,13 @@ Mean squared error on test data: 481979.17861098 Degree of polynomial: 2 Mean squared error on training data: 115822.95008046 Mean squared error on test data: 123711.53703498 -

    -
    -
    Degree of polynomial:   3
    +Degree of polynomial:   3
     Mean squared error on training data: 9011.85263220
     Mean squared error on test data: 10913.84780262
     Degree of polynomial:   4
     Mean squared error on training data: 303.47610036
     Mean squared error on test data: 426.30787294
    -
    -
    -
    Degree of polynomial:   5
    +Degree of polynomial:   5
     Mean squared error on training data: 3.80354994
     Mean squared error on test data: 5.98822371
     Degree of polynomial:   6
    @@ -1384,19 +1491,15 @@ Mean squared error on test data: 2.00607783
     Degree of polynomial:   8
     Mean squared error on training data: 0.04912436
     Mean squared error on test data: 0.21596432
    -
    -
    -
    Degree of polynomial:   9
    +Degree of polynomial:   9
     Mean squared error on training data: 0.02522069
     Mean squared error on test data: 0.08576932
     Degree of polynomial:  10
     Mean squared error on training data: 0.02511518
     Mean squared error on test data: 1.20015436
    -
    -
    -
    Degree of polynomial:  11
    +Degree of polynomial:  11
     Mean squared error on training data: 0.01640891
    -Mean squared error on test data: 1.35533774
    +Mean squared error on test data: 1.35533773
     Degree of polynomial:  12
     Mean squared error on training data: 0.00813803
     Mean squared error on test data: 0.17446471
    @@ -1407,77 +1510,65 @@ Mean squared error on training data: 0.00759119
     Mean squared error on test data: 1.08131003
     Degree of polynomial:  14
     Mean squared error on training data: 0.00472199
    -Mean squared error on test data: 0.81333805
    -
    -
    -
    Degree of polynomial:  15
    +Mean squared error on test data: 0.81333804
    +Degree of polynomial:  15
     Mean squared error on training data: 0.00410478
    -Mean squared error on test data: 92.09149881
    +Mean squared error on test data: 92.09172408
     Degree of polynomial:  16
     Mean squared error on training data: 0.00315593
    -Mean squared error on test data: 234.39095416
    -
    -
    -
    Degree of polynomial:  17
    +Mean squared error on test data: 234.38533184
    +Degree of polynomial:  17
     Mean squared error on training data: 0.00242999
    -Mean squared error on test data: 1270.94548496
    +Mean squared error on test data: 1271.35771842
     Degree of polynomial:  18
     Mean squared error on training data: 0.00228741
    -Mean squared error on test data: 108.28590743
    +Mean squared error on test data: 108.27092897
     
    Degree of polynomial:  19
    -Mean squared error on training data: 0.00156379
    -Mean squared error on test data: 1378.43761347
    +Mean squared error on training data: 0.00156382
    +Mean squared error on test data: 1371.99049330
     Degree of polynomial:  20
    -Mean squared error on training data: 0.00137835
    -Mean squared error on test data: 1954.37992857
    -
    -
    -
    Degree of polynomial:  21
    -Mean squared error on training data: 0.00118527
    -Mean squared error on test data: 14818.20320502
    +Mean squared error on training data: 0.00137823
    +Mean squared error on test data: 1887.85953586
    +Degree of polynomial:  21
    +Mean squared error on training data: 0.00118504
    +Mean squared error on test data: 14859.70127680
     Degree of polynomial:  22
    -Mean squared error on training data: 0.00092646
    -Mean squared error on test data: 871.17339342
    -
    -
    -
    Degree of polynomial:  23
    -Mean squared error on training data: 0.00085884
    -Mean squared error on test data: 5566.16660817
    +Mean squared error on training data: 0.00092645
    +Mean squared error on test data: 876.51214899
    +Degree of polynomial:  23
    +Mean squared error on training data: 0.00085883
    +Mean squared error on test data: 5594.60685864
     Degree of polynomial:  24
    -Mean squared error on training data: 0.00084705
    -Mean squared error on test data: 1314.42631342
    +Mean squared error on training data: 0.00084711
    +Mean squared error on test data: 1277.60619654
     
    Degree of polynomial:  25
    -Mean squared error on training data: 0.00079123
    -Mean squared error on test data: 127043.53189647
    +Mean squared error on training data: 0.00079130
    +Mean squared error on test data: 128664.09744272
     Degree of polynomial:  26
    -Mean squared error on training data: 0.00076925
    -Mean squared error on test data: 18526.05756733
    -
    -
    -
    Degree of polynomial:  27
    -Mean squared error on training data: 0.00069103
    -Mean squared error on test data: 2470.53697476
    +Mean squared error on training data: 0.00076919
    +Mean squared error on test data: 19003.95079764
    +Degree of polynomial:  27
    +Mean squared error on training data: 0.00068941
    +Mean squared error on test data: 2379.66226149
     Degree of polynomial:  28
    -Mean squared error on training data: 0.00062595
    -Mean squared error on test data: 4022.12945452
    +Mean squared error on training data: 0.00062582
    +Mean squared error on test data: 4082.19994371
    +Degree of polynomial:  29
    +Mean squared error on training data: 0.00060708
    +Mean squared error on test data: 3250.24770094
     
    -
    Degree of polynomial:  29
    -Mean squared error on training data: 0.00060705
    -Mean squared error on test data: 3384.63675140
    -
    -
    -
    /var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/626635268.py:73: RuntimeWarning: divide by zero encountered in log10
    +
    <ipython-input-7-40a38ad763f1>:73: RuntimeWarning: divide by zero encountered in log10
       plt.plot(polynomial, np.log10(trainingerror), label='Training Error')
    -/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/626635268.py:74: RuntimeWarning: divide by zero encountered in log10
    +<ipython-input-7-40a38ad763f1>:74: RuntimeWarning: divide by zero encountered in log10
       plt.plot(polynomial, np.log10(testerror), label='Test Error')
     
    -_images/chapter3_65_16.png +_images/chapter3_65_6.png
    @@ -1707,7 +1798,7 @@ cross-validation (LOOCV).

    -
    /var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/3817475779.py:63: RuntimeWarning: divide by zero encountered in log10
    +
    <ipython-input-9-6e75736fdab1>:63: RuntimeWarning: divide by zero encountered in log10
       plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')
     
    @@ -1971,17 +2062,17 @@ Note also that we do not split the data into training and test.

    Fitted beta: [2.08376632 0.19569961 3.97898392] Sklearn fitted beta: [2.08376632 0.19569961 3.97898392] MSE with intercept column -0.0041136346174431284 +0.00411363461744314 MSE with intercept column from SKL -0.004113634617443141 -Manual intercept: 2.0837663229239016 +0.004113634617443116 +Manual intercept: 2.083766322923899 Fitted beta (wiothout intercept): [0.19569961 3.97898392] -Sklearn intercept: 2.0837663229239025 +Sklearn intercept: 2.0837663229239043 Sklearn fitted beta (without intercept): [0.19569961 3.97898392] MSE with Manual intercept 0.00411363461744314 MSE with Sklearn intercept -0.004113634617443135 +0.004113634617443131
    _images/chapter3_107_1.png @@ -2092,19 +2183,19 @@ intercept.

    Beta values for own Ridge implementation
     [ 1.03032441e+00  6.28336218e-02 -6.24175744e-01  5.21169159e-02
       2.80847477e-01  2.12552073e-01  8.13220608e-02 -1.69634577e-02
    - -6.50846112e-02 -7.38962192e-02 -5.94226022e-02 -3.50227564e-02
    - -9.80609615e-03  1.08299273e-02  2.41882037e-02  2.93492130e-02
    -  2.64742912e-02  1.63249532e-02 -5.01831130e-05 -2.15098090e-02]
    + -6.50846111e-02 -7.38962192e-02 -5.94226022e-02 -3.50227564e-02
    + -9.80609616e-03  1.08299273e-02  2.41882036e-02  2.93492130e-02
    +  2.64742912e-02  1.63249532e-02 -5.01831036e-05 -2.15098090e-02]
     Beta values for Scikit-Learn Ridge implementation
     [ 1.03032441e+00  6.28336218e-02 -6.24175744e-01  5.21169159e-02
       2.80847477e-01  2.12552073e-01  8.13220608e-02 -1.69634577e-02
      -6.50846112e-02 -7.38962192e-02 -5.94226022e-02 -3.50227564e-02
      -9.80609615e-03  1.08299273e-02  2.41882037e-02  2.93492130e-02
    -  2.64742912e-02  1.63249532e-02 -5.01831200e-05 -2.15098090e-02]
    +  2.64742912e-02  1.63249532e-02 -5.01831207e-05 -2.15098090e-02]
     MSE values for own Ridge implementation
    -4.3632959170548605e-07
    +4.363295924430451e-07
     MSE values for Scikit-Learn Ridge implementation
    -4.363295916414895e-07
    +4.363295916323784e-07
     Beta values for own Ridge implementation
     [ 1.03630548 -0.01963611 -0.37900111 -0.07062318  0.12182967  0.16343471
       0.13003291  0.07490892  0.02365049 -0.01449782 -0.03814292 -0.04909093
    @@ -2116,9 +2207,9 @@ Beta values for Scikit-Learn Ridge implementation
      -0.05009826 -0.04389027 -0.03279636 -0.01866537 -0.00289724  0.01348565
       0.02976145  0.04543942]
     MSE values for own Ridge implementation
    -5.194042826653172e-06
    +5.19404282648955e-06
     MSE values for Scikit-Learn Ridge implementation
    -5.194042826815498e-06
    +5.1940428268204826e-06
     Beta values for own Ridge implementation
     [ 1.04220758 -0.10931453 -0.17641709 -0.06020587  0.02208512  0.05789007
       0.06491736  0.05785343  0.04537385  0.03196357  0.01969145  0.00934499
    @@ -2130,9 +2221,9 @@ Beta values for Scikit-Learn Ridge implementation
       0.00107405 -0.00526348 -0.00992331 -0.01318643 -0.01531845 -0.01655318
      -0.01708852 -0.01708781]
     MSE values for own Ridge implementation
    -2.0940821989673748e-05
    +2.094082198966615e-05
     MSE values for Scikit-Learn Ridge implementation
    -2.0940821989624095e-05
    +2.094082198961999e-05
     Beta values for own Ridge implementation
     [ 1.01219292 -0.06043581 -0.10391807 -0.05651951 -0.01898855  0.00312361
       0.01463049  0.01975848  0.02123176  0.02068067  0.01905883  0.01691985
    @@ -2144,9 +2235,9 @@ Beta values for Scikit-Learn Ridge implementation
       0.01458337  0.01223198  0.00996754  0.00784393  0.00588657  0.00410387
       0.00249435  0.00105081]
     MSE values for own Ridge implementation
    -0.0003153514830958126
    +0.0003153514830958235
     MSE values for Scikit-Learn Ridge implementation
    -0.0003153514830958081
    +0.00031535148309580783
     Beta values for own Ridge implementation
     [ 8.38916861e-01  1.31276579e-01  8.97497404e-03 -1.72271878e-02
      -2.11744554e-02 -1.91492986e-02 -1.57201944e-02 -1.23002365e-02
    @@ -2160,9 +2251,9 @@ Beta values for Scikit-Learn Ridge implementation
      -1.84923989e-03 -8.13661243e-04  7.46984697e-06  6.56636616e-04
       1.16805821e-03  1.56912044e-03  1.88168312e-03  2.12318726e-03]
     MSE values for own Ridge implementation
    -0.015072388895177109
    +0.015072388895177239
     MSE values for Scikit-Learn Ridge implementation
    -0.015072388895177088
    +0.0150723888951771
     Beta values for own Ridge implementation
     [0.37396662 0.14174745 0.0764924  0.04892055 0.03447512 0.02586427
      0.02024962 0.01633913 0.01347916 0.0113104  0.0096208  0.00827728
    @@ -2174,9 +2265,9 @@ Beta values for Scikit-Learn Ridge implementation
      0.00719176 0.00630331 0.00556826 0.0049544  0.00443743 0.0039987
      0.0036237  0.003301  ]
     MSE values for own Ridge implementation
    -0.2640931530791005
    +0.26409315307910053
     MSE values for Scikit-Learn Ridge implementation
    -0.2640931530791003
    +0.26409315307910025
     
    _images/chapter3_115_1.png @@ -2272,7 +2363,7 @@ Let us see how we can change this code by zero centering.

    Beta values for own Ridge implementation
     [ 3.43579948e-02 -5.43330971e-01 -3.10141413e-03  2.47116868e-01
    -  2.18613217e-01  1.02054837e-01 -4.25617657e-04 -5.90475506e-02
    +  2.18613217e-01  1.02054837e-01 -4.25617658e-04 -5.90475506e-02
      -7.68534263e-02 -6.68929213e-02 -4.24906604e-02 -1.40927184e-02
       1.11482289e-02  2.88529063e-02  3.67047975e-02  3.38135733e-02
       2.02198702e-02 -3.46383925e-03 -3.63025821e-02]
    @@ -2283,13 +2374,13 @@ Beta values for Scikit-Learn Ridge implementation
       1.11482289e-02  2.88529063e-02  3.67047975e-02  3.38135733e-02
       2.02198702e-02 -3.46383925e-03 -3.63025821e-02]
     Intercept from own implementation:
    -1.0330308045180234
    +1.0330308045190182
     Intercept from Scikit-Learn Ridge implementation
    -1.0330308045183163
    +1.0330308045183219
     MSE values for own Ridge implementation
    -3.1392559581788775e-06
    +3.13925595925919e-06
     MSE values for Scikit-Learn Ridge implementation
    -3.1392559584983597e-06
    +3.1392559585048734e-06
     Beta values for own Ridge implementation
     [-0.05807125 -0.29822833 -0.08551306  0.08156108  0.13679863  0.12333649
       0.08251519  0.03815288  0.00111756 -0.02498832 -0.04010697 -0.04566964
    @@ -2301,13 +2392,13 @@ Beta values for Scikit-Learn Ridge implementation
      -0.04355837 -0.03562355 -0.02348765 -0.00848904  0.00831018  0.0260906
       0.04423486]
     Intercept from own implementation:
    -1.0411487294305746
    +1.041148729430502
     Intercept from Scikit-Learn Ridge implementation
    -1.0411487294305246
    +1.041148729430523
     MSE values for own Ridge implementation
    -1.9601304850213484e-05
    +1.9601304850018328e-05
     MSE values for Scikit-Learn Ridge implementation
    -1.960130485007934e-05
    +1.960130485007504e-05
     Beta values for own Ridge implementation
     [-0.1416398  -0.14021063 -0.05383795  0.01367553  0.04784395  0.05796251
       0.05447415  0.044613    0.03267527  0.02098261  0.01066519  0.00217499
    @@ -2319,13 +2410,13 @@ Beta values for Scikit-Learn Ridge implementation
      -0.00440346 -0.00917248 -0.01231917 -0.01405935 -0.0146081  -0.01416528
      -0.01290947]
     Intercept from own implementation:
    -1.0495569966278315
    +1.0495569966278238
     Intercept from Scikit-Learn Ridge implementation
     1.0495569966278269
     MSE values for own Ridge implementation
    -5.495916150938325e-05
    +5.4959161509356135e-05
     MSE values for Scikit-Learn Ridge implementation
    -5.495916150936654e-05
    +5.495916150936645e-05
     Beta values for own Ridge implementation
     [-0.13535942 -0.08593216 -0.03568439 -0.0036367   0.01397146  0.02229529
       0.02503753  0.0245528   0.02228115  0.01908936  0.01549377  0.01179792
    @@ -2341,9 +2432,9 @@ Intercept from own implementation:
     Intercept from Scikit-Learn Ridge implementation
     1.0399676689527975
     MSE values for own Ridge implementation
    -7.571105947979439e-05
    +7.571105947979336e-05
     MSE values for Scikit-Learn Ridge implementation
    -7.571105947979395e-05
    +7.571105947979394e-05
     Beta values for own Ridge implementation
     [-0.05100875 -0.04063602 -0.02723445 -0.01713366 -0.0100706  -0.00517114
      -0.00174276  0.00068734  0.00243186  0.00369758  0.00462287  0.0053018
    @@ -2359,9 +2450,9 @@ Intercept from own implementation:
     Intercept from Scikit-Learn Ridge implementation
     0.999955585168597
     MSE values for own Ridge implementation
    -0.0007698473260556339
    +0.0007698473260556344
     MSE values for Scikit-Learn Ridge implementation
    -0.0007698473260556334
    +0.0007698473260556325
     Beta values for own Ridge implementation
     [-0.00834567 -0.00803064 -0.00673407 -0.00554552 -0.00458878 -0.0038335
      -0.00323332 -0.00274989 -0.0023548  -0.00202756 -0.00175331 -0.00152117
    @@ -2379,7 +2470,7 @@ Intercept from Scikit-Learn Ridge implementation
     MSE values for own Ridge implementation
     0.0023813163025848865
     MSE values for Scikit-Learn Ridge implementation
    -0.002381316302584885
    +0.002381316302584886
     
    _images/chapter3_117_1.png @@ -2596,7 +2687,9 @@ linear system as an equation would reduce this down to
    -
    /var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/4162706317.py:7: UserWarning: FixedFormatter should only be used together with FixedLocator
    +
    <ipython-input-20-6f7a6bd7d79f>:6: MatplotlibDeprecationWarning: Auto-removal of grids by pcolor() and pcolormesh() is deprecated since 3.5 and will be removed two minor releases later; please call grid(False) first.
    +  cb = fig.colorbar(im)
    +<ipython-input-20-6f7a6bd7d79f>:7: UserWarning: FixedFormatter should only be used together with FixedLocator
       cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)
     
    @@ -2740,7 +2833,9 @@ with the form utilized in linear regression, viz.

    -
    /var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/3777801602.py:7: UserWarning: FixedFormatter should only be used together with FixedLocator
    +
    <ipython-input-25-5dd54edf2138>:6: MatplotlibDeprecationWarning: Auto-removal of grids by pcolor() and pcolormesh() is deprecated since 3.5 and will be removed two minor releases later; please call grid(False) first.
    +  cb = fig.colorbar(im)
    +<ipython-input-25-5dd54edf2138>:7: UserWarning: FixedFormatter should only be used together with FixedLocator
       cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)
     
    @@ -2788,7 +2883,9 @@ K

    -
    /var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/438060758.py:10: UserWarning: FixedFormatter should only be used together with FixedLocator
    +
    <ipython-input-26-fe5b9d300cc0>:9: MatplotlibDeprecationWarning: Auto-removal of grids by pcolor() and pcolormesh() is deprecated since 3.5 and will be removed two minor releases later; please call grid(False) first.
    +  cb = fig.colorbar(im)
    +<ipython-input-26-fe5b9d300cc0>:10: UserWarning: FixedFormatter should only be used together with FixedLocator
       cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)
     
    @@ -2823,7 +2920,9 @@ K

    -
    /var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/3544313922.py:9: UserWarning: FixedFormatter should only be used together with FixedLocator
    +
    <ipython-input-27-25845e8df859>:8: MatplotlibDeprecationWarning: Auto-removal of grids by pcolor() and pcolormesh() is deprecated since 3.5 and will be removed two minor releases later; please call grid(False) first.
    +  cb = fig.colorbar(im)
    +<ipython-input-27-25845e8df859>:9: UserWarning: FixedFormatter should only be used together with FixedLocator
       cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)
     
    @@ -2876,43 +2975,43 @@ constant as opposed to ridge and OLS. We get a sparse solution with
    -
      0%|                                                                                                                                              | 0/10 [00:00<?, ?it/s]
    +
      0%|          | 0/10 [00:00<?, ?it/s]
     
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_coordinate_descent.py:645: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.924e+00, tolerance: 1.797e+00
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:647: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.924e+00, tolerance: 1.797e+00
       model = cd_fast.enet_coordinate_descent(
     
    - 10%|█████████████▍                                                                                                                        | 1/10 [00:00<00:04,  1.95it/s]
    + 10%|█         | 1/10 [00:00<00:06,  1.50it/s]
     
    -
     20%|██████████████████████████▊                                                                                                           | 2/10 [00:00<00:03,  2.63it/s]
    +
     20%|██        | 2/10 [00:01<00:03,  2.11it/s]
     
    -
     30%|████████████████████████████████████████▏                                                                                             | 3/10 [00:00<00:01,  3.57it/s]
    +
     30%|███       | 3/10 [00:01<00:02,  3.06it/s]
     
    -
     40%|█████████████████████████████████████████████████████▌                                                                                | 4/10 [00:01<00:01,  4.54it/s]
    +
     40%|████      | 4/10 [00:01<00:01,  4.00it/s]
     
    -
     50%|███████████████████████████████████████████████████████████████████                                                                   | 5/10 [00:01<00:00,  5.36it/s]
    +
     50%|█████     | 5/10 [00:01<00:01,  4.87it/s]
     
    -
     60%|████████████████████████████████████████████████████████████████████████████████▍                                                     | 6/10 [00:01<00:00,  6.04it/s]
    +
     60%|██████    | 6/10 [00:01<00:00,  5.73it/s]
     
    -
     70%|█████████████████████████████████████████████████████████████████████████████████████████████▊                                        | 7/10 [00:01<00:00,  5.69it/s]
    +
     70%|███████   | 7/10 [00:01<00:00,  6.34it/s]
     
    -
     80%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▏                          | 8/10 [00:01<00:00,  6.18it/s]
    +
     80%|████████  | 8/10 [00:01<00:00,  6.22it/s]
     
    -
     90%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌             | 9/10 [00:01<00:00,  6.57it/s]
    +
     90%|█████████ | 9/10 [00:01<00:00,  6.41it/s]
     
    -
    100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:01<00:00,  6.75it/s]
    +
    100%|██████████| 10/10 [00:02<00:00,  6.14it/s]
     
    -
    100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:01<00:00,  5.15it/s]
    +
    100%|██████████| 10/10 [00:02<00:00,  4.66it/s]
     
    
    @@ -3059,8 +3158,10 @@ which polynomial fits the data best.

    -
    /var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/3980313467.py:9: MatplotlibDeprecationWarning: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4. Starting two minor releases later, gca() will take no keyword arguments. The gca() function should only be used to get the current axes, or if no axes exist, create new axes with default keyword arguments. To create a new axes with non-default arguments, use plt.axes() or plt.subplot().
    +
    <ipython-input-30-bc298b802fe2>:9: MatplotlibDeprecationWarning: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4. Starting two minor releases later, gca() will take no keyword arguments. The gca() function should only be used to get the current axes, or if no axes exist, create new axes with default keyword arguments. To create a new axes with non-default arguments, use plt.axes() or plt.subplot().
       ax = fig.gca(projection='3d')
    +<ipython-input-30-bc298b802fe2>:37: MatplotlibDeprecationWarning: Auto-removal of grids by pcolor() and pcolormesh() is deprecated since 3.5 and will be removed two minor releases later; please call grid(False) first.
    +  fig.colorbar(surf, shrink=0.5, aspect=5)
     
    _images/chapter3_181_1.png @@ -3220,7 +3321,7 @@ Python program using

    ---------------------------------------------------------------------------
     NameError                                 Traceback (most recent call last)
    -/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42456/1950915150.py in <module>
    +<ipython-input-31-d985fb40c43d> in <module>
     ----> 1 scipy.misc.imread
     
     NameError: name 'scipy' is not defined
    @@ -3292,54 +3393,42 @@ of data presented here (either the terrain data we propose or other data sets).<
     
                   
    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter4.html b/doc/LectureNotes/_build/html/chapter4.html index c7c40cc38..22300f549 100644 --- a/doc/LectureNotes/_build/html/chapter4.html +++ b/doc/LectureNotes/_build/html/chapter4.html @@ -7,8 +7,8 @@ 6. Logistic Regression — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@
    -
    +
    Contents @@ -325,7 +342,50 @@
    - + + +
    @@ -875,11 +935,11 @@ classification.

    (426, 30)
     (143, 30)
    -Test set accuracy with Logistic Regression: 0.95
    +Test set accuracy with Logistic Regression: 0.94
     Test set accuracy Logistic Regression with scaled data: 0.96
     
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):
     STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
     
     Increase the number of iterations (max_iter) or scale the data as shown in:
    @@ -1019,14 +1079,14 @@ applications. This will be discussed later this semester (
     
    (426, 30)
     (143, 30)
    -Test set accuracy with Logistic Regression: 0.95
    +Test set accuracy with Logistic Regression: 0.94
     Test set accuracy Logistic Regression with scaled data: 0.96
     [1.         1.         1.         1.         1.         1.
      1.         1.         0.92857143 0.92857143]
     Test set accuracy with Logistic Regression  and scaled data: 0.96
     
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):
     STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
     
     Increase the number of iterations (max_iter) or scale the data as shown in:
    @@ -1036,9 +1096,18 @@ Please also refer to the documentation for alternative solver options:
       n_iter_i = _check_optimize_result(
     
    -_images/chapter4_57_2.png -_images/chapter4_57_3.png -_images/chapter4_57_4.png +
    ---------------------------------------------------------------------------
    +ModuleNotFoundError                       Traceback (most recent call last)
    +<ipython-input-8-12adb44b1c20> in <module>
    +     34 
    +     35 
    +---> 36 import scikitplot as skplt
    +     37 y_pred = logreg.predict(X_test_scaled)
    +     38 skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)
    +
    +ModuleNotFoundError: No module named 'scikitplot'
    +
    +
    @@ -1066,54 +1135,42 @@ Please also refer to the documentation for alternative solver options:
    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter5.html b/doc/LectureNotes/_build/html/chapter5.html index 391860a81..8717ab250 100644 --- a/doc/LectureNotes/_build/html/chapter5.html +++ b/doc/LectureNotes/_build/html/chapter5.html @@ -7,8 +7,8 @@ 8. Support Vector Machines, overarching aims — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@
    -
    +
    Contents @@ -347,7 +364,72 @@
    - + + +
    @@ -1214,7 +1296,7 @@ in practice.

    _images/chapter5_129_0.png -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/svm/_base.py:1199: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
       warnings.warn(
     
    @@ -1263,7 +1345,7 @@ converge. So, welcome to the promised land of quadratic programming.

    ---------------------------------------------------------------------------
     ModuleNotFoundError                       Traceback (most recent call last)
    -/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42530/4034668048.py in <module>
    +<ipython-input-4-703716d317a7> in <module>
           1 import numpy
     ----> 2 import cvxopt
     
    @@ -1374,54 +1456,42 @@ With  the slack constants this leads to the additional constraint 
    -        
    -            
    -            
    -

    previous

    -

    7. Optimization, the central part of any Machine Learning algortithm

    -
    -
    + + - +
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter6.html b/doc/LectureNotes/_build/html/chapter6.html index 102f13ddb..83296791e 100644 --- a/doc/LectureNotes/_build/html/chapter6.html +++ b/doc/LectureNotes/_build/html/chapter6.html @@ -7,8 +7,8 @@ 9. Decision trees, overarching aims — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@
    -
    +
    Contents @@ -400,7 +417,125 @@
    - + + +
    @@ -550,9 +685,9 @@ predicting the target features of query instances is as follows:

    2nd degree coefficients:
    -zero power:  -5.456418966187335
    -first power:  0.07099747918547346
    -second power:  -0.00028369228101198006
    +zero power:  3.975510299261579
    +first power:  -0.12345260617257443
    +second power:  -0.0003043256065368937
     
    _images/chapter6_1_1.png @@ -785,105 +920,16 @@ s = -\sum_{k=1}^K p_{mk}\log{p_{mk}}.
    -
         mean radius  mean texture  mean perimeter  mean area  mean smoothness  \
    -0          17.99         10.38          122.80     1001.0          0.11840   
    -1          20.57         17.77          132.90     1326.0          0.08474   
    -2          19.69         21.25          130.00     1203.0          0.10960   
    -3          11.42         20.38           77.58      386.1          0.14250   
    -4          20.29         14.34          135.10     1297.0          0.10030   
    -..           ...           ...             ...        ...              ...   
    -564        21.56         22.39          142.00     1479.0          0.11100   
    -565        20.13         28.25          131.20     1261.0          0.09780   
    -566        16.60         28.08          108.30      858.1          0.08455   
    -567        20.60         29.33          140.10     1265.0          0.11780   
    -568         7.76         24.54           47.92      181.0          0.05263   
    +
    ---------------------------------------------------------------------------
    +ModuleNotFoundError                       Traceback (most recent call last)
    +<ipython-input-2-7c394b1e8b71> in <module>
    +      7 
    +      8 from IPython.display import Image
    +----> 9 from pydot import graph_from_dot_data
    +     10 import pandas as pd
    +     11 import numpy as np
     
    -     mean compactness  mean concavity  mean concave points  mean symmetry  \
    -0             0.27760         0.30010              0.14710         0.2419   
    -1             0.07864         0.08690              0.07017         0.1812   
    -2             0.15990         0.19740              0.12790         0.2069   
    -3             0.28390         0.24140              0.10520         0.2597   
    -4             0.13280         0.19800              0.10430         0.1809   
    -..                ...             ...                  ...            ...   
    -564           0.11590         0.24390              0.13890         0.1726   
    -565           0.10340         0.14400              0.09791         0.1752   
    -566           0.10230         0.09251              0.05302         0.1590   
    -567           0.27700         0.35140              0.15200         0.2397   
    -568           0.04362         0.00000              0.00000         0.1587   
    -
    -     mean fractal dimension  ...  worst radius  worst texture  \
    -0                   0.07871  ...        25.380          17.33   
    -1                   0.05667  ...        24.990          23.41   
    -2                   0.05999  ...        23.570          25.53   
    -3                   0.09744  ...        14.910          26.50   
    -4                   0.05883  ...        22.540          16.67   
    -..                      ...  ...           ...            ...   
    -564                 0.05623  ...        25.450          26.40   
    -565                 0.05533  ...        23.690          38.25   
    -566                 0.05648  ...        18.980          34.12   
    -567                 0.07016  ...        25.740          39.42   
    -568                 0.05884  ...         9.456          30.37   
    -
    -     worst perimeter  worst area  worst smoothness  worst compactness  \
    -0             184.60      2019.0           0.16220            0.66560   
    -1             158.80      1956.0           0.12380            0.18660   
    -2             152.50      1709.0           0.14440            0.42450   
    -3              98.87       567.7           0.20980            0.86630   
    -4             152.20      1575.0           0.13740            0.20500   
    -..               ...         ...               ...                ...   
    -564           166.10      2027.0           0.14100            0.21130   
    -565           155.00      1731.0           0.11660            0.19220   
    -566           126.70      1124.0           0.11390            0.30940   
    -567           184.60      1821.0           0.16500            0.86810   
    -568            59.16       268.6           0.08996            0.06444   
    -
    -     worst concavity  worst concave points  worst symmetry  \
    -0             0.7119                0.2654          0.4601   
    -1             0.2416                0.1860          0.2750   
    -2             0.4504                0.2430          0.3613   
    -3             0.6869                0.2575          0.6638   
    -4             0.4000                0.1625          0.2364   
    -..               ...                   ...             ...   
    -564           0.4107                0.2216          0.2060   
    -565           0.3215                0.1628          0.2572   
    -566           0.3403                0.1418          0.2218   
    -567           0.9387                0.2650          0.4087   
    -568           0.0000                0.0000          0.2871   
    -
    -     worst fractal dimension  
    -0                    0.11890  
    -1                    0.08902  
    -2                    0.08758  
    -3                    0.17300  
    -4                    0.07678  
    -..                       ...  
    -564                  0.07115  
    -565                  0.06637  
    -566                  0.07820  
    -567                  0.12400  
    -568                  0.07039  
    -
    -[569 rows x 30 columns]
    -     malignant  benign
    -0            1       0
    -1            1       0
    -2            1       0
    -3            1       0
    -4            1       0
    -..         ...     ...
    -564          1       0
    -565          1       0
    -566          1       0
    -567          1       0
    -568          0       1
    -
    -[569 rows x 2 columns]
    -
    -
    -
    sh: dot: command not found
    -
    -
    -
    32512
    +ModuleNotFoundError: No module named 'pydot'
     
    @@ -917,14 +963,6 @@ s = -\sum_{k=1}^K p_{mk}\log{p_{mk}}.
    -
    -
    sh: dot: command not found
    -
    -
    -
    32512
    -
    -
    -
    @@ -942,28 +980,6 @@ s = -\sum_{k=1}^K p_{mk}\log{p_{mk}}.
    -
    -
    [Text(167.4, 199.32, 'X[2] <= 2.45\ngini = 0.667\nsamples = 150\nvalue = [50, 50, 50]'),
    - Text(141.64615384615385, 163.07999999999998, 'gini = 0.0\nsamples = 50\nvalue = [50, 0, 0]'),
    - Text(193.15384615384616, 163.07999999999998, 'X[3] <= 1.75\ngini = 0.5\nsamples = 100\nvalue = [0, 50, 50]'),
    - Text(103.01538461538462, 126.83999999999999, 'X[2] <= 4.95\ngini = 0.168\nsamples = 54\nvalue = [0, 49, 5]'),
    - Text(51.50769230769231, 90.6, 'X[3] <= 1.65\ngini = 0.041\nsamples = 48\nvalue = [0, 47, 1]'),
    - Text(25.753846153846155, 54.359999999999985, 'gini = 0.0\nsamples = 47\nvalue = [0, 47, 0]'),
    - Text(77.26153846153846, 54.359999999999985, 'gini = 0.0\nsamples = 1\nvalue = [0, 0, 1]'),
    - Text(154.52307692307693, 90.6, 'X[3] <= 1.55\ngini = 0.444\nsamples = 6\nvalue = [0, 2, 4]'),
    - Text(128.76923076923077, 54.359999999999985, 'gini = 0.0\nsamples = 3\nvalue = [0, 0, 3]'),
    - Text(180.27692307692308, 54.359999999999985, 'X[2] <= 5.45\ngini = 0.444\nsamples = 3\nvalue = [0, 2, 1]'),
    - Text(154.52307692307693, 18.119999999999976, 'gini = 0.0\nsamples = 2\nvalue = [0, 2, 0]'),
    - Text(206.03076923076924, 18.119999999999976, 'gini = 0.0\nsamples = 1\nvalue = [0, 0, 1]'),
    - Text(283.2923076923077, 126.83999999999999, 'X[2] <= 4.85\ngini = 0.043\nsamples = 46\nvalue = [0, 1, 45]'),
    - Text(257.53846153846155, 90.6, 'X[1] <= 3.1\ngini = 0.444\nsamples = 3\nvalue = [0, 1, 2]'),
    - Text(231.7846153846154, 54.359999999999985, 'gini = 0.0\nsamples = 2\nvalue = [0, 0, 2]'),
    - Text(283.2923076923077, 54.359999999999985, 'gini = 0.0\nsamples = 1\nvalue = [0, 1, 0]'),
    - Text(309.04615384615386, 90.6, 'gini = 0.0\nsamples = 43\nvalue = [0, 0, 43]')]
    -
    -
    -_images/chapter6_24_1.png -

    Alternatively, the tree can also be exported in textual format with the function exporttext. This method doesn’t require the installation of external libraries and is more compact:

    @@ -980,17 +996,6 @@ This method doesn’t require the installation of external libraries and is more
    -
    -
    |--- petal width (cm) <= 0.80
    -|   |--- class: 0
    -|--- petal width (cm) >  0.80
    -|   |--- petal width (cm) <= 1.75
    -|   |   |--- class: 1
    -|   |--- petal width (cm) >  1.75
    -|   |   |--- class: 2
    -
    -
    -
    @@ -1155,20 +1160,6 @@ humidity and weak and strong for wind.

    -
    -
    ---------------------------------------------------------------------------
    -FileNotFoundError                         Traceback (most recent call last)
    -/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42541/4192423635.py in <module>
    -     35     plt.savefig(image_path(fig_id) + ".png", format='png')
    -     36 
    ----> 37 infile = open(data_path("rideclass.csv"),'r')
    -     38 
    -     39 # Read the experimental data with Pandas
    -
    -FileNotFoundError: [Errno 2] No such file or directory: 'DataFiles/rideclass.csv'
    -
    -
    -

    The above functions (gini, entropy and misclassification error) are important components of the so-called CART algorithm. We will discuss @@ -1565,54 +1556,42 @@ trees can be substantially improved.

    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter7.html b/doc/LectureNotes/_build/html/chapter7.html index bfcee0e41..297a52172 100644 --- a/doc/LectureNotes/_build/html/chapter7.html +++ b/doc/LectureNotes/_build/html/chapter7.html @@ -7,8 +7,8 @@ 10. Ensemble Methods: From a Single Tree to Many Trees and Extreme Boosting, Meet the Jungle of Methods — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@
    -
    +
    Contents @@ -381,7 +398,106 @@
    - + + +
    @@ -459,7 +575,7 @@ predictor, averaged over all \(B\)
    ---------------------------------------------------------------------------
     NameError                                 Traceback (most recent call last)
    -/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42553/2572495066.py in <module>
    +<ipython-input-1-eface79dac2c> in <module>
           1 heads_proba = 0.51
     ----> 2 coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32)
           3 cumulative_heads_ratio = np.cumsum(coin_tosses, axis=0) / np.arange(1, 10001).reshape(-1, 1)
    @@ -1431,54 +1547,42 @@ sketch for efficient proposal calculation. It introduces a novel sparsity-aware
     
                   
    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter8.html b/doc/LectureNotes/_build/html/chapter8.html index e0a88d816..dd6e33067 100644 --- a/doc/LectureNotes/_build/html/chapter8.html +++ b/doc/LectureNotes/_build/html/chapter8.html @@ -7,8 +7,8 @@ 11. Basic ideas of the Principal Component Analysis (PCA) — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@
    -
    +
    Contents @@ -374,7 +391,99 @@
    - + + +
    @@ -530,10 +639,10 @@ covariance matrix through the np.linalg.eig() function.

    -
    0.0358909447132981
    -4.176880142835407
    -[[ 1.09297039  3.38901478]
    - [ 3.38901478 11.48089797]]
    +
    0.03382304823545749
    +4.021250026482402
    +[[0.9252772  2.69061276]
    + [2.69061276 8.90540529]]
     
    @@ -573,10 +682,10 @@ a more brute force way. Here we scale the mean values for each column of the des
    -
    0.10044225464078282
    -2.1586300629904382
    -[[1.         0.72373129]
    - [0.72373129 1.        ]]
    +
    0.08328216846752691
    +2.094472507965532
    +[[1.         0.67697934]
    + [0.67697934 1.        ]]
     
    @@ -605,30 +714,30 @@ this matrix we easily see that it is a positive definite matrix.

    -
    [[-0.50416731 -0.8962476 ]
    - [-1.00198806 -2.48687342]
    - [-0.14988578 -0.24485843]
    - [ 1.33327369  3.92754397]
    - [ 0.47531107  0.66818635]
    - [-0.03278964 -1.08041015]
    - [-0.32992274  1.59591979]
    - [-1.06160438 -3.85324115]
    - [ 0.4644244   1.36689784]
    - [ 0.80734875  1.0030828 ]]
    +
    [[ 2.38295101  5.51289697]
    + [ 0.51803019  2.61399851]
    + [-1.09849763 -1.02255619]
    + [-0.54016188 -0.53794784]
    + [ 0.28634473  1.32721178]
    + [-1.66619972 -6.88017651]
    + [ 1.52811546  4.29512284]
    + [ 0.427017    2.43493232]
    + [-0.80842254 -4.37964744]
    + [-1.02917662 -3.36383443]]
               0         1
    -0 -0.504167 -0.896248
    -1 -1.001988 -2.486873
    -2 -0.149886 -0.244858
    -3  1.333274  3.927544
    -4  0.475311  0.668186
    -5 -0.032790 -1.080410
    -6 -0.329923  1.595920
    -7 -1.061604 -3.853241
    -8  0.464424  1.366898
    -9  0.807349  1.003083
    +0  2.382951  5.512897
    +1  0.518030  2.613999
    +2 -1.098498 -1.022556
    +3 -0.540162 -0.537948
    +4  0.286345  1.327212
    +5 -1.666200 -6.880177
    +6  1.528115  4.295123
    +7  0.427017  2.434932
    +8 -0.808423 -4.379647
    +9 -1.029177 -3.363834
               0         1
    -0  1.000000  0.878297
    -1  0.878297  1.000000
    +0  1.000000  0.930583
    +1  0.930583  1.000000
     
    @@ -685,37 +794,37 @@ this matrix we easily see that it is a positive definite matrix.

         0         1         2         3         4         5         6         7   \
     0   0.0  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000   
    -1   0.0  0.068937  0.073016  0.069091  0.070612  0.071705  0.061898  0.062451   
    -2   0.0  0.073016  0.079839  0.075573  0.078253  0.080256  0.068659  0.069754   
    -3   0.0  0.069091  0.075573  0.074488  0.077022  0.078911  0.069912  0.070911   
    -4   0.0  0.070612  0.078253  0.077022  0.080106  0.082451  0.072620  0.073907   
    -5   0.0  0.071705  0.080256  0.078911  0.082451  0.085185  0.074666  0.076204   
    -6   0.0  0.061898  0.068659  0.069912  0.072620  0.074666  0.067714  0.068809   
    -7   0.0  0.062451  0.069754  0.070911  0.073907  0.076204  0.068809  0.070071   
    -8   0.0  0.062884  0.070635  0.071698  0.074945  0.077467  0.069672  0.071086   
    -9   0.0  0.063250  0.071387  0.072348  0.075820  0.078548  0.070379  0.071935   
    -10  0.0  0.054585  0.060841  0.063657  0.066194  0.068120  0.063078  0.064108   
    -11  0.0  0.054785  0.061321  0.064052  0.066753  0.068831  0.063513  0.064648   
    -12  0.0  0.054963  0.061745  0.064384  0.067236  0.069455  0.063872  0.065106   
    -13  0.0  0.055137  0.062142  0.064681  0.067675  0.070028  0.064184  0.065514   
    -14  0.0  0.055320  0.062534  0.064964  0.068094  0.070576  0.064469  0.065892   
    +1   0.0  0.086074  0.080593  0.088526  0.083276  0.078269  0.081046  0.076604   
    +2   0.0  0.080593  0.076130  0.082896  0.078254  0.073810  0.076216  0.072216   
    +3   0.0  0.088526  0.082896  0.096472  0.091051  0.085879  0.091696  0.086956   
    +4   0.0  0.083276  0.078254  0.091051  0.086112  0.081388  0.086890  0.082536   
    +5   0.0  0.078269  0.073810  0.085879  0.081388  0.077083  0.082295  0.078299   
    +6   0.0  0.081046  0.076216  0.091696  0.086890  0.082295  0.089501  0.085163   
    +7   0.0  0.076604  0.072216  0.086956  0.082536  0.078299  0.085163  0.081144   
    +8   0.0  0.072442  0.068461  0.082503  0.078436  0.074530  0.081072  0.077349   
    +9   0.0  0.068538  0.064931  0.078314  0.074573  0.070972  0.077211  0.073761   
    +10  0.0  0.073062  0.069085  0.084862  0.080738  0.076780  0.084484  0.080647   
    +11  0.0  0.069275  0.065641  0.080706  0.076895  0.073230  0.080582  0.077013   
    +12  0.0  0.065730  0.062411  0.076804  0.073280  0.069884  0.076905  0.073583   
    +13  0.0  0.062409  0.059378  0.073136  0.069877  0.066729  0.073436  0.070343   
    +14  0.0  0.059294  0.056528  0.069685  0.066670  0.063752  0.070163  0.067282   
     
               8         9         10        11        12        13        14  
     0   0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  
    -1   0.062884  0.063250  0.054585  0.054785  0.054963  0.055137  0.055320  
    -2   0.070635  0.071387  0.060841  0.061321  0.061745  0.062142  0.062534  
    -3   0.071698  0.072348  0.063657  0.064052  0.064384  0.064681  0.064964  
    -4   0.074945  0.075820  0.066194  0.066753  0.067236  0.067675  0.068094  
    -5   0.077467  0.078548  0.068120  0.068831  0.069455  0.070028  0.070576  
    -6   0.069672  0.070379  0.063078  0.063513  0.063872  0.064184  0.064469  
    -7   0.071086  0.071935  0.064108  0.064648  0.065106  0.065514  0.065892  
    -8   0.072242  0.073225  0.064918  0.065557  0.066110  0.066609  0.067079  
    -9   0.073225  0.074336  0.065575  0.066309  0.066954  0.067544  0.068103  
    -10  0.064918  0.065575  0.059783  0.060183  0.060507  0.060781  0.061025  
    -11  0.065557  0.066309  0.060183  0.060655  0.061048  0.061390  0.061701  
    -12  0.066110  0.066954  0.060507  0.061048  0.061509  0.061917  0.062294  
    -13  0.066609  0.067544  0.060781  0.061390  0.061917  0.062391  0.062834  
    -14  0.067079  0.068103  0.061025  0.061701  0.062294  0.062834  0.063343  
    +1   0.072442  0.068538  0.073062  0.069275  0.065730  0.062409  0.059294  
    +2   0.068461  0.064931  0.069085  0.065641  0.062411  0.059378  0.056528  
    +3   0.082503  0.078314  0.084862  0.080706  0.076804  0.073136  0.069685  
    +4   0.078436  0.074573  0.080738  0.076895  0.073280  0.069877  0.066670  
    +5   0.074530  0.070972  0.076780  0.073230  0.069884  0.066729  0.063752  
    +6   0.081072  0.077211  0.084484  0.080582  0.076905  0.073436  0.070163  
    +7   0.077349  0.073761  0.080647  0.077013  0.073583  0.070343  0.067282  
    +8   0.073827  0.070492  0.077015  0.073629  0.070429  0.067402  0.064538  
    +9   0.070492  0.067392  0.073575  0.070419  0.067432  0.064604  0.061923  
    +10  0.077015  0.073575  0.080984  0.077452  0.074111  0.070950  0.067956  
    +11  0.073629  0.070419  0.077452  0.074149  0.071022  0.068059  0.065249  
    +12  0.070429  0.067432  0.074111  0.071022  0.068093  0.065314  0.062676  
    +13  0.067402  0.064604  0.070950  0.068059  0.065314  0.062706  0.060228  
    +14  0.064538  0.061923  0.067956  0.065249  0.062676  0.060228  0.057899  
     
    @@ -904,10 +1013,10 @@ We can write our own code or simply use either the functionaly of numpy<
              0         1
    -0  3.947903  1.993972
    -1  1.993972  1.993535
    -[[3.94790323 1.99397245]
    - [1.99397245 1.99353454]]
    +0  4.038506  2.027865
    +1  2.027865  2.037559
    +[[4.03850557 2.02786488]
    + [2.02786488 2.03755944]]
     
    @@ -934,8 +1043,8 @@ Our own code here is not very elegant and asks for obvious improvements. It is t
    Centered covariance using own code
    -[[3.94790323 1.99397245]
    - [1.99397245 1.99353454]]
    +[[4.03850557 2.02786488]
    + [2.02786488 2.03755944]]
     
    _images/chapter8_65_1.png @@ -995,16 +1104,16 @@ questions.

    Eigenvalues of Covariance matrix
    -5.191262820314401
    -0.7501749450963715
    +5.299267190588216
    +0.7767978193240488
     First eigenvector
    -[0.84854738 0.52911941]
    +[0.84924834 0.52799362]
     Second eigenvector
    -[-0.52911941  0.84854738]
    +[-0.52799362  0.84924834]
     
    Eigenvector of largest eigenvalue
    -[-0.84854738 -0.52911941]
    +[0.84924834 0.52799362]
     
    @@ -1349,7 +1458,7 @@ Train set accuracy scaled data: 0.99 Train set accuracy scaled and PCA data: 0.96
    -
    /Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):
     STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
     
     Increase the number of iterations (max_iter) or scale the data as shown in:
    @@ -1461,54 +1570,42 @@ For example, the following code uses Scikit-Learn’s KernelPCA class to perform
     
                   
    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapter9.html b/doc/LectureNotes/_build/html/chapter9.html index aca38d4f7..3bf37a1b5 100644 --- a/doc/LectureNotes/_build/html/chapter9.html +++ b/doc/LectureNotes/_build/html/chapter9.html @@ -7,8 +7,8 @@ 13. Neural networks — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -205,7 +207,7 @@ -

    +

    Deep Learning Methods @@ -282,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf

    @@ -300,7 +302,7 @@
    -
    +
    Contents @@ -391,7 +393,101 @@
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/chapteroptimization.html b/doc/LectureNotes/_build/html/chapteroptimization.html index 79431ac4e..8070bf2ab 100644 --- a/doc/LectureNotes/_build/html/chapteroptimization.html +++ b/doc/LectureNotes/_build/html/chapteroptimization.html @@ -7,8 +7,8 @@ 7. Optimization, the central part of any Machine Learning algortithm — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -205,7 +207,7 @@ -

    +

    Deep Learning Methods @@ -282,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf

    @@ -300,7 +302,7 @@
    -
    + - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/clustering.html b/doc/LectureNotes/_build/html/clustering.html index 41cdce5da..95a9e92c4 100644 --- a/doc/LectureNotes/_build/html/clustering.html +++ b/doc/LectureNotes/_build/html/clustering.html @@ -7,8 +7,8 @@ 12. Clustering and Unsupervised Learning — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -205,7 +207,7 @@ -

    +

    Deep Learning Methods @@ -282,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf

    @@ -300,7 +302,7 @@
    -
    +
    Contents @@ -320,7 +322,30 @@
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/genindex.html b/doc/LectureNotes/_build/html/genindex.html index 9b2d54ecf..1033c472d 100644 --- a/doc/LectureNotes/_build/html/genindex.html +++ b/doc/LectureNotes/_build/html/genindex.html @@ -7,8 +7,8 @@ Index — Applied Data Analysis and Machine Learning - - + + - + @@ -41,11 +41,20 @@ - + + + - + + + + @@ -84,7 +93,7 @@ -

    +

    About the course @@ -106,7 +115,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -123,7 +132,7 @@ -

    +

    From Regression to Support Vector Machines @@ -160,7 +169,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -177,7 +186,7 @@ -

    +

    Dimensionality Reduction @@ -194,7 +203,7 @@ -

    +

    Deep Learning Methods @@ -272,14 +281,24 @@

    -
    +
    - + +
    +

    + +
    +
    + +
    +
    +
    +
    @@ -292,36 +311,28 @@
    - - - - -
    - - + +
    - +
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/intro.html b/doc/LectureNotes/_build/html/intro.html index 599331c80..f2c1442b0 100644 --- a/doc/LectureNotes/_build/html/intro.html +++ b/doc/LectureNotes/_build/html/intro.html @@ -7,8 +7,8 @@ Applied Data Analysis and Machine Learning — Applied Data Analysis and Machine Learning - - + + - + @@ -41,19 +41,21 @@ - - - + + - + + + + @@ -92,7 +94,7 @@ -

    +

    About the course @@ -114,7 +116,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -131,7 +133,7 @@ -

    +

    From Regression to Support Vector Machines @@ -168,7 +170,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -185,7 +187,7 @@ -

    +

    Dimensionality Reduction @@ -202,7 +204,7 @@ -

    +

    Deep Learning Methods @@ -279,7 +281,7 @@ data-placement="left">.md + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf

    @@ -297,7 +299,7 @@
    -
    +
    Contents @@ -361,7 +363,74 @@
    - + + +
    @@ -539,45 +608,35 @@ no setup and runs entirely in the cloud. Try it out!

    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/linalg.html b/doc/LectureNotes/_build/html/linalg.html index 9d1973405..1adf2c77d 100644 --- a/doc/LectureNotes/_build/html/linalg.html +++ b/doc/LectureNotes/_build/html/linalg.html @@ -7,8 +7,8 @@ 2. Linear Algebra, Handling of Arrays and more Python Features — Applied Data Analysis and Machine Learning - - + + - + @@ -41,22 +41,24 @@ - - - - - + + + + - + + + + @@ -91,11 +93,11 @@ -

    +

    About the course @@ -117,7 +119,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -134,7 +136,7 @@ -

    +

    From Regression to Support Vector Machines @@ -171,7 +173,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -188,7 +190,7 @@ -

    +

    Dimensionality Reduction @@ -199,8 +201,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -208,17 +215,27 @@

    @@ -267,7 +284,7 @@ data-placement="left">.ipynb + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -285,7 +302,7 @@
    -
    +
    Contents @@ -337,7 +354,62 @@
    - + + +
    @@ -453,8 +525,8 @@ matrices and vectors.

    -
    [-0.96653373  0.0433816   0.49636583 -1.12196674 -0.69295955  0.01756972
    - -0.90268858  0.30535506  0.70769586 -1.05087958]
    +
    [ 1.8108619  -0.65136857  0.00577441  0.11499517  0.32179365 -0.70598996
    +  0.96992454  1.77865169 -0.40599799  0.04284519]
     
    @@ -541,7 +613,7 @@ The attentive reader will also notice that the output is -
      File "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_42580/2775623201.py", line 3
    +
      File "<ipython-input-6-f6d7a289d493>", line 3
         print(x)
         ^
     SyntaxError: invalid syntax
    @@ -1179,54 +1251,42 @@ can be written as a vector with unknown entries

    - - - - -
    -
    -

    - - By Morten Hjorth-Jensen
    - - © Copyright 2021.
    -

    -
    -
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    - + - \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/schedule.html b/doc/LectureNotes/_build/html/schedule.html index f6e990f52..b260113c4 100644 --- a/doc/LectureNotes/_build/html/schedule.html +++ b/doc/LectureNotes/_build/html/schedule.html @@ -7,8 +7,8 @@ Teaching schedule with links to material — Applied Data Analysis and Machine Learning - - + + - + @@ -41,20 +41,22 @@ - - - + + - + - + + + + @@ -89,11 +91,11 @@ -

    +

    About the course @@ -115,7 +117,7 @@ -

    +

    Review of Statistics with Resampling Techniques and Linear Algebra @@ -132,7 +134,7 @@ -

    +

    From Regression to Support Vector Machines @@ -169,7 +171,7 @@ -

    +

    Decision Trees, Ensemble Methods and Boosting @@ -186,7 +188,7 @@ -

    +

    Dimensionality Reduction @@ -197,8 +199,13 @@ 11. Basic ideas of the Principal Component Analysis (PCA) +

  • + + 12. Clustering and Unsupervised Learning + +
  • -

    +

    Deep Learning Methods @@ -206,17 +213,27 @@

    @@ -265,7 +282,7 @@ data-placement="left">.md + onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf
    @@ -283,7 +300,7 @@
    -
    +
    - + + +